Logo Search packages:      
Sourcecode: vala-0.12 version File versions  Download package

valagdbusclientmodule.c

/* valagdbusclientmodule.c generated by valac, the Vala compiler
 * generated from valagdbusclientmodule.vala, do not modify */

/* valagdbusclientmodule.vala
 *
 * Copyright (C) 2010-2011  Jürg Billeter
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 *    Jürg Billeter <j@bitron.ch>
 *    Philip Van Hoof <pvanhoof@gnome.org>
 */

#include <glib.h>
#include <glib-object.h>
#include <vala.h>
#include <valaccode.h>
#include <valagee.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>


#define VALA_TYPE_CCODE_BASE_MODULE (vala_ccode_base_module_get_type ())
#define VALA_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModule))
#define VALA_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))
#define VALA_IS_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_IS_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_CCODE_BASE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))

typedef struct _ValaCCodeBaseModule ValaCCodeBaseModule;
typedef struct _ValaCCodeBaseModuleClass ValaCCodeBaseModuleClass;
typedef struct _ValaCCodeBaseModulePrivate ValaCCodeBaseModulePrivate;

#define VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT (vala_ccode_base_module_emit_context_get_type ())
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContext))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))

typedef struct _ValaCCodeBaseModuleEmitContext ValaCCodeBaseModuleEmitContext;
typedef struct _ValaCCodeBaseModuleEmitContextClass ValaCCodeBaseModuleEmitContextClass;

#define VALA_TYPE_CCODE_STRUCT_MODULE (vala_ccode_struct_module_get_type ())
#define VALA_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModule))
#define VALA_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))
#define VALA_IS_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_IS_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_CCODE_STRUCT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))

typedef struct _ValaCCodeStructModule ValaCCodeStructModule;
typedef struct _ValaCCodeStructModuleClass ValaCCodeStructModuleClass;
typedef struct _ValaCCodeStructModulePrivate ValaCCodeStructModulePrivate;

#define VALA_TYPE_CCODE_METHOD_MODULE (vala_ccode_method_module_get_type ())
#define VALA_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModule))
#define VALA_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))
#define VALA_IS_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_IS_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_CCODE_METHOD_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))

typedef struct _ValaCCodeMethodModule ValaCCodeMethodModule;
typedef struct _ValaCCodeMethodModuleClass ValaCCodeMethodModuleClass;
typedef struct _ValaCCodeMethodModulePrivate ValaCCodeMethodModulePrivate;

#define VALA_TYPE_CCODE_CONTROL_FLOW_MODULE (vala_ccode_control_flow_module_get_type ())
#define VALA_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModule))
#define VALA_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_CCODE_CONTROL_FLOW_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))

typedef struct _ValaCCodeControlFlowModule ValaCCodeControlFlowModule;
typedef struct _ValaCCodeControlFlowModuleClass ValaCCodeControlFlowModuleClass;
typedef struct _ValaCCodeControlFlowModulePrivate ValaCCodeControlFlowModulePrivate;

#define VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE (vala_ccode_member_access_module_get_type ())
#define VALA_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModule))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))

typedef struct _ValaCCodeMemberAccessModule ValaCCodeMemberAccessModule;
typedef struct _ValaCCodeMemberAccessModuleClass ValaCCodeMemberAccessModuleClass;
typedef struct _ValaCCodeMemberAccessModulePrivate ValaCCodeMemberAccessModulePrivate;

#define VALA_TYPE_CCODE_ASSIGNMENT_MODULE (vala_ccode_assignment_module_get_type ())
#define VALA_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModule))
#define VALA_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_CCODE_ASSIGNMENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))

typedef struct _ValaCCodeAssignmentModule ValaCCodeAssignmentModule;
typedef struct _ValaCCodeAssignmentModuleClass ValaCCodeAssignmentModuleClass;
typedef struct _ValaCCodeAssignmentModulePrivate ValaCCodeAssignmentModulePrivate;

#define VALA_TYPE_CCODE_METHOD_CALL_MODULE (vala_ccode_method_call_module_get_type ())
#define VALA_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModule))
#define VALA_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))
#define VALA_IS_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_IS_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_CCODE_METHOD_CALL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))

typedef struct _ValaCCodeMethodCallModule ValaCCodeMethodCallModule;
typedef struct _ValaCCodeMethodCallModuleClass ValaCCodeMethodCallModuleClass;
typedef struct _ValaCCodeMethodCallModulePrivate ValaCCodeMethodCallModulePrivate;

#define VALA_TYPE_CCODE_ARRAY_MODULE (vala_ccode_array_module_get_type ())
#define VALA_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModule))
#define VALA_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))
#define VALA_IS_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_IS_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_CCODE_ARRAY_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))

typedef struct _ValaCCodeArrayModule ValaCCodeArrayModule;
typedef struct _ValaCCodeArrayModuleClass ValaCCodeArrayModuleClass;
typedef struct _ValaCCodeArrayModulePrivate ValaCCodeArrayModulePrivate;

#define VALA_TYPE_CCODE_DELEGATE_MODULE (vala_ccode_delegate_module_get_type ())
#define VALA_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModule))
#define VALA_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))
#define VALA_IS_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_IS_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_CCODE_DELEGATE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))

typedef struct _ValaCCodeDelegateModule ValaCCodeDelegateModule;
typedef struct _ValaCCodeDelegateModuleClass ValaCCodeDelegateModuleClass;
typedef struct _ValaCCodeDelegateModulePrivate ValaCCodeDelegateModulePrivate;

#define VALA_TYPE_GERROR_MODULE (vala_gerror_module_get_type ())
#define VALA_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModule))
#define VALA_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))
#define VALA_IS_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GERROR_MODULE))
#define VALA_IS_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GERROR_MODULE))
#define VALA_GERROR_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))

typedef struct _ValaGErrorModule ValaGErrorModule;
typedef struct _ValaGErrorModuleClass ValaGErrorModuleClass;
typedef struct _ValaGErrorModulePrivate ValaGErrorModulePrivate;

#define VALA_TYPE_GTYPE_MODULE (vala_gtype_module_get_type ())
#define VALA_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModule))
#define VALA_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))
#define VALA_IS_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GTYPE_MODULE))
#define VALA_IS_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GTYPE_MODULE))
#define VALA_GTYPE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))

typedef struct _ValaGTypeModule ValaGTypeModule;
typedef struct _ValaGTypeModuleClass ValaGTypeModuleClass;
typedef struct _ValaGTypeModulePrivate ValaGTypeModulePrivate;

#define VALA_TYPE_GOBJECT_MODULE (vala_gobject_module_get_type ())
#define VALA_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModule))
#define VALA_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))
#define VALA_IS_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GOBJECT_MODULE))
#define VALA_IS_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GOBJECT_MODULE))
#define VALA_GOBJECT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))

typedef struct _ValaGObjectModule ValaGObjectModule;
typedef struct _ValaGObjectModuleClass ValaGObjectModuleClass;
typedef struct _ValaGObjectModulePrivate ValaGObjectModulePrivate;

#define VALA_TYPE_GSIGNAL_MODULE (vala_gsignal_module_get_type ())
#define VALA_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModule))
#define VALA_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))
#define VALA_IS_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_IS_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_GSIGNAL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))

typedef struct _ValaGSignalModule ValaGSignalModule;
typedef struct _ValaGSignalModuleClass ValaGSignalModuleClass;
typedef struct _ValaGSignalModulePrivate ValaGSignalModulePrivate;

#define VALA_TYPE_GASYNC_MODULE (vala_gasync_module_get_type ())
#define VALA_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModule))
#define VALA_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))
#define VALA_IS_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GASYNC_MODULE))
#define VALA_IS_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GASYNC_MODULE))
#define VALA_GASYNC_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))

typedef struct _ValaGAsyncModule ValaGAsyncModule;
typedef struct _ValaGAsyncModuleClass ValaGAsyncModuleClass;
typedef struct _ValaGAsyncModulePrivate ValaGAsyncModulePrivate;

#define VALA_TYPE_GVARIANT_MODULE (vala_gvariant_module_get_type ())
#define VALA_GVARIANT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModule))
#define VALA_GVARIANT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModuleClass))
#define VALA_IS_GVARIANT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GVARIANT_MODULE))
#define VALA_IS_GVARIANT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GVARIANT_MODULE))
#define VALA_GVARIANT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModuleClass))

typedef struct _ValaGVariantModule ValaGVariantModule;
typedef struct _ValaGVariantModuleClass ValaGVariantModuleClass;
typedef struct _ValaGVariantModulePrivate ValaGVariantModulePrivate;

#define VALA_TYPE_GD_BUS_MODULE (vala_gd_bus_module_get_type ())
#define VALA_GD_BUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule))
#define VALA_GD_BUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModuleClass))
#define VALA_IS_GD_BUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_MODULE))
#define VALA_IS_GD_BUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_MODULE))
#define VALA_GD_BUS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModuleClass))

typedef struct _ValaGDBusModule ValaGDBusModule;
typedef struct _ValaGDBusModuleClass ValaGDBusModuleClass;
typedef struct _ValaGDBusModulePrivate ValaGDBusModulePrivate;

#define VALA_TYPE_GD_BUS_CLIENT_MODULE (vala_gd_bus_client_module_get_type ())
#define VALA_GD_BUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule))
#define VALA_GD_BUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModuleClass))
#define VALA_IS_GD_BUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE))
#define VALA_IS_GD_BUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_CLIENT_MODULE))
#define VALA_GD_BUS_CLIENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModuleClass))

typedef struct _ValaGDBusClientModule ValaGDBusClientModule;
typedef struct _ValaGDBusClientModuleClass ValaGDBusClientModuleClass;
typedef struct _ValaGDBusClientModulePrivate ValaGDBusClientModulePrivate;

#define VALA_GD_BUS_CLIENT_MODULE_TYPE_CALL_TYPE (vala_gd_bus_client_module_call_type_get_type ())
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))

struct _ValaCCodeBaseModule {
      ValaCodeGenerator parent_instance;
      ValaCCodeBaseModulePrivate * priv;
      ValaSymbol* root_symbol;
      ValaCCodeBaseModuleEmitContext* emit_context;
      ValaCCodeFile* header_file;
      ValaCCodeFile* internal_header_file;
      ValaCCodeFile* cfile;
      ValaCCodeBaseModuleEmitContext* class_init_context;
      ValaCCodeBaseModuleEmitContext* base_init_context;
      ValaCCodeBaseModuleEmitContext* class_finalize_context;
      ValaCCodeBaseModuleEmitContext* base_finalize_context;
      ValaCCodeBaseModuleEmitContext* instance_init_context;
      ValaCCodeBaseModuleEmitContext* instance_finalize_context;
      ValaCCodeStruct* param_spec_struct;
      ValaCCodeStruct* closure_struct;
      ValaCCodeEnum* prop_enum;
      ValaSet* user_marshal_set;
      ValaSet* predefined_marshal_set;
      gint next_regex_id;
      gboolean in_constructor;
      gboolean in_static_or_class_context;
      gint next_coroutine_state;
      ValaDataType* void_type;
      ValaDataType* bool_type;
      ValaDataType* char_type;
      ValaDataType* uchar_type;
      ValaDataType* unichar_type;
      ValaDataType* short_type;
      ValaDataType* ushort_type;
      ValaDataType* int_type;
      ValaDataType* uint_type;
      ValaDataType* long_type;
      ValaDataType* ulong_type;
      ValaDataType* int8_type;
      ValaDataType* uint8_type;
      ValaDataType* int16_type;
      ValaDataType* uint16_type;
      ValaDataType* int32_type;
      ValaDataType* uint32_type;
      ValaDataType* int64_type;
      ValaDataType* uint64_type;
      ValaDataType* string_type;
      ValaDataType* regex_type;
      ValaDataType* float_type;
      ValaDataType* double_type;
      ValaTypeSymbol* gtype_type;
      ValaTypeSymbol* gobject_type;
      ValaErrorType* gerror_type;
      ValaClass* glist_type;
      ValaClass* gslist_type;
      ValaClass* gnode_type;
      ValaClass* gvaluearray_type;
      ValaTypeSymbol* gstringbuilder_type;
      ValaTypeSymbol* garray_type;
      ValaTypeSymbol* gbytearray_type;
      ValaTypeSymbol* gptrarray_type;
      ValaTypeSymbol* gthreadpool_type;
      ValaDataType* gdestroynotify_type;
      ValaDataType* gquark_type;
      ValaStruct* gvalue_type;
      ValaClass* gvariant_type;
      ValaStruct* mutex_type;
      ValaTypeSymbol* type_module_type;
      ValaTypeSymbol* dbus_proxy_type;
      ValaTypeSymbol* dbus_object_type;
      gboolean in_plugin;
      gchar* module_init_param_name;
      gboolean gvaluecollector_h_needed;
      gboolean requires_array_free;
      gboolean requires_array_move;
      gboolean requires_array_length;
      ValaSet* wrappers;
};

struct _ValaCCodeBaseModuleClass {
      ValaCodeGeneratorClass parent_class;
      void (*append_vala_array_free) (ValaCCodeBaseModule* self);
      void (*append_vala_array_move) (ValaCCodeBaseModule* self);
      void (*append_vala_array_length) (ValaCCodeBaseModule* self);
      gboolean (*generate_enum_declaration) (ValaCCodeBaseModule* self, ValaEnum* en, ValaCCodeFile* decl_space);
      void (*generate_class_struct_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
      void (*generate_struct_declaration) (ValaCCodeBaseModule* self, ValaStruct* st, ValaCCodeFile* decl_space);
      void (*generate_delegate_declaration) (ValaCCodeBaseModule* self, ValaDelegate* d, ValaCCodeFile* decl_space);
      void (*generate_cparameters) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
      ValaCCodeExpression* (*get_dup_func_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaSourceReference* source_reference, gboolean is_chainup);
      gchar* (*append_struct_array_free) (ValaCCodeBaseModule* self, ValaStruct* st);
      ValaCCodeExpression* (*destroy_variable) (ValaCCodeBaseModule* self, ValaVariable* variable, ValaTargetValue* target_lvalue);
      ValaCCodeExpression* (*destroy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, gboolean is_macro_definition);
      void (*append_local_free) (ValaCCodeBaseModule* self, ValaSymbol* sym, gboolean stop_at_loop, ValaCodeNode* stop_at);
      ValaTargetValue* (*get_local_cvalue) (ValaCCodeBaseModule* self, ValaLocalVariable* local);
      ValaTargetValue* (*get_parameter_cvalue) (ValaCCodeBaseModule* self, ValaParameter* param);
      ValaTargetValue* (*get_field_cvalue) (ValaCCodeBaseModule* self, ValaField* field, ValaTargetValue* instance);
      ValaTargetValue* (*load_this_parameter) (ValaCCodeBaseModule* self, ValaTypeSymbol* sym);
      gchar* (*get_delegate_target_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
      ValaCCodeExpression* (*get_delegate_target_cexpression) (ValaCCodeBaseModule* self, ValaExpression* delegate_expr, ValaCCodeExpression** delegate_target_destroy_notify);
      ValaCCodeExpression* (*get_delegate_target_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
      ValaCCodeExpression* (*get_delegate_target_destroy_notify_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
      gchar* (*get_delegate_target_destroy_notify_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
      ValaCCodeExpression* (*get_ref_cexpression) (ValaCCodeBaseModule* self, ValaDataType* expression_type, ValaCCodeExpression* cexpr, ValaExpression* expr, ValaCodeNode* node);
      void (*generate_class_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
      void (*generate_interface_declaration) (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
      void (*generate_method_declaration) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space);
      void (*generate_error_domain_declaration) (ValaCCodeBaseModule* self, ValaErrorDomain* edomain, ValaCCodeFile* decl_space);
      ValaCCodeExpression* (*deserialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* variant_expr, ValaCCodeExpression* expr, ValaCCodeExpression* error_expr, gboolean* may_fail);
      ValaCCodeExpression* (*serialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* expr);
      ValaCCodeExpression* (*get_implicit_cast_expression) (ValaCCodeBaseModule* self, ValaCCodeExpression* source_cexpr, ValaDataType* expression_type, ValaDataType* target_type, ValaExpression* expr);
      gboolean (*is_gobject_property) (ValaCCodeBaseModule* self, ValaProperty* prop);
      gchar* (*get_custom_creturn_type) (ValaCCodeBaseModule* self, ValaMethod* m);
      void (*generate_dynamic_method_wrapper) (ValaCCodeBaseModule* self, ValaDynamicMethod* method);
      gboolean (*method_has_wrapper) (ValaCCodeBaseModule* self, ValaMethod* method);
      ValaCCodeFunctionCall* (*get_param_spec) (ValaCCodeBaseModule* self, ValaProperty* prop);
      ValaCCodeFunctionCall* (*get_signal_creation) (ValaCCodeBaseModule* self, ValaSignal* sig, ValaTypeSymbol* type);
      void (*register_dbus_info) (ValaCCodeBaseModule* self, ValaCCodeBlock* block, ValaObjectTypeSymbol* bindable);
      gchar* (*get_dynamic_property_getter_cname) (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
      gchar* (*get_dynamic_property_setter_cname) (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
      gchar* (*get_dynamic_signal_cname) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      gchar* (*get_dynamic_signal_connect_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      gchar* (*get_dynamic_signal_connect_after_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      gchar* (*get_dynamic_signal_disconnect_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
      void (*generate_marshaller) (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, gboolean dbus);
      gchar* (*get_marshaller_function) (ValaCCodeBaseModule* self, ValaList* params, ValaDataType* return_type, const gchar* prefix, gboolean dbus);
      gchar* (*get_array_length_cname) (ValaCCodeBaseModule* self, const gchar* array_cname, gint dim);
      gchar* (*get_parameter_array_length_cname) (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
      ValaCCodeExpression* (*get_array_length_cexpression) (ValaCCodeBaseModule* self, ValaExpression* array_expr, gint dim);
      ValaCCodeExpression* (*get_array_length_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value, gint dim);
      gchar* (*get_array_size_cname) (ValaCCodeBaseModule* self, const gchar* array_cname);
      void (*add_simple_check) (ValaCCodeBaseModule* self, ValaCodeNode* node, gboolean always_fails);
      gchar* (*generate_ready_function) (ValaCCodeBaseModule* self, ValaMethod* m);
};

struct _ValaCCodeStructModule {
      ValaCCodeBaseModule parent_instance;
      ValaCCodeStructModulePrivate * priv;
};

struct _ValaCCodeStructModuleClass {
      ValaCCodeBaseModuleClass parent_class;
};

struct _ValaCCodeMethodModule {
      ValaCCodeStructModule parent_instance;
      ValaCCodeMethodModulePrivate * priv;
};

struct _ValaCCodeMethodModuleClass {
      ValaCCodeStructModuleClass parent_class;
      void (*generate_method_result_declaration) (ValaCCodeMethodModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeFunction* cfunc, ValaMap* cparam_map, ValaMap* carg_map);
      ValaCCodeParameter* (*generate_parameter) (ValaCCodeMethodModule* self, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map);
};

struct _ValaCCodeControlFlowModule {
      ValaCCodeMethodModule parent_instance;
      ValaCCodeControlFlowModulePrivate * priv;
};

struct _ValaCCodeControlFlowModuleClass {
      ValaCCodeMethodModuleClass parent_class;
};

struct _ValaCCodeMemberAccessModule {
      ValaCCodeControlFlowModule parent_instance;
      ValaCCodeMemberAccessModulePrivate * priv;
};

struct _ValaCCodeMemberAccessModuleClass {
      ValaCCodeControlFlowModuleClass parent_class;
};

struct _ValaCCodeAssignmentModule {
      ValaCCodeMemberAccessModule parent_instance;
      ValaCCodeAssignmentModulePrivate * priv;
};

struct _ValaCCodeAssignmentModuleClass {
      ValaCCodeMemberAccessModuleClass parent_class;
};

struct _ValaCCodeMethodCallModule {
      ValaCCodeAssignmentModule parent_instance;
      ValaCCodeMethodCallModulePrivate * priv;
};

struct _ValaCCodeMethodCallModuleClass {
      ValaCCodeAssignmentModuleClass parent_class;
};

struct _ValaCCodeArrayModule {
      ValaCCodeMethodCallModule parent_instance;
      ValaCCodeArrayModulePrivate * priv;
};

struct _ValaCCodeArrayModuleClass {
      ValaCCodeMethodCallModuleClass parent_class;
};

struct _ValaCCodeDelegateModule {
      ValaCCodeArrayModule parent_instance;
      ValaCCodeDelegateModulePrivate * priv;
};

struct _ValaCCodeDelegateModuleClass {
      ValaCCodeArrayModuleClass parent_class;
};

struct _ValaGErrorModule {
      ValaCCodeDelegateModule parent_instance;
      ValaGErrorModulePrivate * priv;
};

struct _ValaGErrorModuleClass {
      ValaCCodeDelegateModuleClass parent_class;
      void (*return_with_exception) (ValaGErrorModule* self, ValaCCodeExpression* error_expr);
};

struct _ValaGTypeModule {
      ValaGErrorModule parent_instance;
      ValaGTypeModulePrivate * priv;
};

struct _ValaGTypeModuleClass {
      ValaGErrorModuleClass parent_class;
      void (*generate_virtual_method_declaration) (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct);
      void (*generate_class_init) (ValaGTypeModule* self, ValaClass* cl);
};

struct _ValaGObjectModule {
      ValaGTypeModule parent_instance;
      ValaGObjectModulePrivate * priv;
};

struct _ValaGObjectModuleClass {
      ValaGTypeModuleClass parent_class;
};

struct _ValaGSignalModule {
      ValaGObjectModule parent_instance;
      ValaGSignalModulePrivate * priv;
};

struct _ValaGSignalModuleClass {
      ValaGObjectModuleClass parent_class;
      ValaCCodeExpression* (*get_dbus_g_type) (ValaGSignalModule* self, ValaDataType* data_type);
};

struct _ValaGAsyncModule {
      ValaGSignalModule parent_instance;
      ValaGAsyncModulePrivate * priv;
};

struct _ValaGAsyncModuleClass {
      ValaGSignalModuleClass parent_class;
};

struct _ValaGVariantModule {
      ValaGAsyncModule parent_instance;
      ValaGVariantModulePrivate * priv;
};

struct _ValaGVariantModuleClass {
      ValaGAsyncModuleClass parent_class;
};

struct _ValaGDBusModule {
      ValaGVariantModule parent_instance;
      ValaGDBusModulePrivate * priv;
};

struct _ValaGDBusModuleClass {
      ValaGVariantModuleClass parent_class;
};

struct _ValaGDBusClientModule {
      ValaGDBusModule parent_instance;
      ValaGDBusClientModulePrivate * priv;
};

struct _ValaGDBusClientModuleClass {
      ValaGDBusModuleClass parent_class;
};

typedef enum  {
      VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC,
      VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC,
      VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH,
      VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY
} ValaGDBusClientModuleCallType;


static gpointer vala_gd_bus_client_module_parent_class = NULL;

GType vala_ccode_base_module_get_type (void) G_GNUC_CONST;
gpointer vala_ccode_base_module_emit_context_ref (gpointer instance);
void vala_ccode_base_module_emit_context_unref (gpointer instance);
GParamSpec* vala_ccode_base_module_param_spec_emit_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void vala_ccode_base_module_value_set_emit_context (GValue* value, gpointer v_object);
void vala_ccode_base_module_value_take_emit_context (GValue* value, gpointer v_object);
gpointer vala_ccode_base_module_value_get_emit_context (const GValue* value);
GType vala_ccode_base_module_emit_context_get_type (void) G_GNUC_CONST;
GType vala_ccode_struct_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_method_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_control_flow_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_member_access_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_assignment_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_method_call_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_array_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_delegate_module_get_type (void) G_GNUC_CONST;
GType vala_gerror_module_get_type (void) G_GNUC_CONST;
GType vala_gtype_module_get_type (void) G_GNUC_CONST;
GType vala_gobject_module_get_type (void) G_GNUC_CONST;
GType vala_gsignal_module_get_type (void) G_GNUC_CONST;
GType vala_gasync_module_get_type (void) G_GNUC_CONST;
GType vala_gvariant_module_get_type (void) G_GNUC_CONST;
GType vala_gd_bus_module_get_type (void) G_GNUC_CONST;
GType vala_gd_bus_client_module_get_type (void) G_GNUC_CONST;
enum  {
      VALA_GD_BUS_CLIENT_MODULE_DUMMY_PROPERTY
};
static GType vala_gd_bus_client_module_call_type_get_type (void) G_GNUC_UNUSED;
ValaCCodeConstant* vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self, ValaSymbol* symbol);
static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method);
void vala_ccode_base_module_generate_cparameters (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
void vala_ccode_base_module_push_function (ValaCCodeBaseModule* self, ValaCCodeFunction* func);
static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self, ValaMethod* m, ValaGDBusClientModuleCallType call_type, const gchar* iface_name, const gchar* method_name);
void vala_ccode_base_module_pop_function (ValaCCodeBaseModule* self);
static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface);
static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space);
void vala_ccode_base_module_generate_interface_declaration (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
gchar* vala_gd_bus_module_get_dbus_name (ValaTypeSymbol* symbol);
gboolean vala_ccode_base_module_add_symbol_declaration (ValaCCodeBaseModule* self, ValaCCodeFile* decl_space, ValaSymbol* sym, const gchar* name);
static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface);
static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr);
ValaCCodeExpression* vala_ccode_base_module_get_type_id_expression (ValaCCodeBaseModule* self, ValaDataType* type, gboolean is_chainup);
void vala_ccode_base_module_set_current_method_inner_error (ValaCCodeBaseModule* self, gboolean value);
ValaCCodeExpression* vala_ccode_base_module_get_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr);
gchar* vala_ccode_base_module_generate_ready_function (ValaCCodeBaseModule* self, ValaMethod* m);
ValaMethod* vala_ccode_base_module_get_current_method (ValaCCodeBaseModule* self);
ValaCCodeExpression* vala_ccode_base_module_get_delegate_target (ValaCCodeBaseModule* self, ValaExpression* expr);
ValaCCodeExpression* vala_ccode_base_module_get_variable_cexpression (ValaCCodeBaseModule* self, const gchar* name);
ValaCCodeFunction* vala_ccode_base_module_get_ccode (ValaCCodeBaseModule* self);
ValaLocalVariable* vala_ccode_base_module_get_temp_variable (ValaCCodeBaseModule* self, ValaDataType* type, gboolean value_owned, ValaCodeNode* node_reference, gboolean init);
void vala_ccode_base_module_emit_temp_var (ValaCCodeBaseModule* self, ValaLocalVariable* local, gboolean always_init);
void vala_ccode_base_module_set_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr, ValaCCodeExpression* cvalue);
static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym);
gchar* vala_ccode_base_module_get_variable_cname (ValaCCodeBaseModule* self, const gchar* name);
ValaCCodeExpression* vala_ccode_base_module_default_value_for_type (ValaCCodeBaseModule* self, ValaDataType* type, gboolean initializer_expression);
gchar* vala_ccode_base_module_get_parameter_array_length_cname (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
void vala_gvariant_module_read_expression (ValaGVariantModule* self, ValaDataType* type, ValaCCodeExpression* iter_expr, ValaCCodeExpression* target_expr, ValaSymbol* sym, ValaCCodeExpression* error_expr, gboolean* may_fail);
gboolean vala_ccode_base_module_requires_destroy (ValaCCodeBaseModule* self, ValaDataType* type);
ValaCCodeExpression* vala_ccode_base_module_destroy_local (ValaCCodeBaseModule* self, ValaLocalVariable* local);
gchar* vala_gd_bus_module_get_dbus_name_for_member (ValaSymbol* symbol);
gboolean vala_gd_bus_module_dbus_method_uses_file_descriptor (ValaGDBusModule* self, ValaMethod* method);
void vala_gd_bus_module_send_dbus_value (ValaGDBusModule* self, ValaDataType* type, ValaCCodeExpression* builder_expr, ValaCCodeExpression* expr, ValaSymbol* sym);
gchar* vala_gasync_module_generate_async_callback_wrapper (ValaGAsyncModule* self);
void vala_ccode_base_module_return_default_value (ValaCCodeBaseModule* self, ValaDataType* return_type);
void vala_gd_bus_module_receive_dbus_value (ValaGDBusModule* self, ValaDataType* type, ValaCCodeExpression* message_expr, ValaCCodeExpression* iter_expr, ValaCCodeExpression* target_expr, ValaSymbol* sym, ValaCCodeExpression* error_expr, gboolean* may_fail);
gboolean vala_gd_bus_module_is_dbus_no_reply (ValaMethod* m);
gint vala_ccode_base_module_get_param_pos (ValaCCodeBaseModule* self, gdouble param_pos, gboolean ellipsis);
void vala_gvariant_module_write_expression (ValaGVariantModule* self, ValaDataType* type, ValaCCodeExpression* builder_expr, ValaCCodeExpression* expr, ValaSymbol* sym);
ValaCCodeExpression* vala_ccode_base_module_deserialize_expression (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* variant_expr, ValaCCodeExpression* expr, ValaCCodeExpression* error_expr, gboolean* may_fail);
static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym);
ValaGDBusClientModule* vala_gd_bus_client_module_new (void);
ValaGDBusClientModule* vala_gd_bus_client_module_construct (GType object_type);
ValaGDBusModule* vala_gd_bus_module_new (void);
ValaGDBusModule* vala_gd_bus_module_construct (GType object_type);


static GType vala_gd_bus_client_module_call_type_get_type (void) {
      static volatile gsize vala_gd_bus_client_module_call_type_type_id__volatile = 0;
      if (g_once_init_enter (&vala_gd_bus_client_module_call_type_type_id__volatile)) {
            static const GEnumValue values[] = {{VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC", "sync"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC", "async"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH", "finish"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY", "no-reply"}, {0, NULL, NULL}};
            GType vala_gd_bus_client_module_call_type_type_id;
            vala_gd_bus_client_module_call_type_type_id = g_enum_register_static ("ValaGDBusClientModuleCallType", values);
            g_once_init_leave (&vala_gd_bus_client_module_call_type_type_id__volatile, vala_gd_bus_client_module_call_type_type_id);
      }
      return vala_gd_bus_client_module_call_type_type_id__volatile;
}


ValaCCodeConstant* vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self, ValaSymbol* symbol) {
      ValaCCodeConstant* result = NULL;
      gint timeout;
      ValaAttribute* _tmp0_ = NULL;
      ValaAttribute* dbus;
      gboolean _tmp1_ = FALSE;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      ValaCCodeConstant* _tmp9_ = NULL;
      ValaCCodeConstant* _tmp10_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (symbol != NULL, NULL);
      timeout = -1;
      _tmp0_ = vala_code_node_get_attribute ((ValaCodeNode*) symbol, "DBus");
      dbus = _tmp0_;
      if (dbus != NULL) {
            gboolean _tmp2_;
            _tmp2_ = vala_attribute_has_argument (dbus, "timeout");
            _tmp1_ = _tmp2_;
      } else {
            _tmp1_ = FALSE;
      }
      if (_tmp1_) {
            gint _tmp3_;
            _tmp3_ = vala_attribute_get_integer (dbus, "timeout");
            timeout = _tmp3_;
      } else {
            ValaSymbol* _tmp4_ = NULL;
            _tmp4_ = vala_symbol_get_parent_symbol (symbol);
            if (_tmp4_ != NULL) {
                  ValaSymbol* _tmp5_ = NULL;
                  ValaCCodeConstant* _tmp6_ = NULL;
                  _tmp5_ = vala_symbol_get_parent_symbol (symbol);
                  _tmp6_ = vala_gd_bus_client_module_get_dbus_timeout (self, _tmp5_);
                  result = _tmp6_;
                  _vala_code_node_unref0 (dbus);
                  return result;
            }
      }
      _tmp7_ = g_strdup_printf ("%i", timeout);
      _tmp8_ = _tmp7_;
      _tmp9_ = vala_ccode_constant_new (_tmp8_);
      _tmp10_ = _tmp9_;
      _g_free0 (_tmp8_);
      result = _tmp10_;
      _vala_code_node_unref0 (dbus);
      return result;
}


static gpointer _vala_code_node_ref0 (gpointer self) {
      return self ? vala_code_node_ref (self) : NULL;
}


static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method) {
      ValaGDBusClientModule * self;
      ValaDynamicMethod* _tmp0_;
      ValaDynamicMethod* dynamic_method;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      ValaCCodeFunction* _tmp3_ = NULL;
      ValaCCodeFunction* _tmp4_;
      ValaCCodeFunction* func;
      ValaHashMap* _tmp5_ = NULL;
      ValaHashMap* cparam_map;
      ValaDataType* _tmp6_ = NULL;
      ValaTypeSymbol* _tmp7_ = NULL;
      self = (ValaGDBusClientModule*) base;
      g_return_if_fail (method != NULL);
      _tmp0_ = _vala_code_node_ref0 (VALA_DYNAMIC_METHOD (method));
      dynamic_method = _tmp0_;
      _tmp1_ = vala_method_get_cname ((ValaMethod*) method);
      _tmp2_ = _tmp1_;
      _tmp3_ = vala_ccode_function_new (_tmp2_, "void");
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp2_);
      func = _tmp4_;
      vala_ccode_function_set_modifiers (func, VALA_CCODE_MODIFIERS_STATIC);
      _tmp5_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
      cparam_map = _tmp5_;
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, (ValaMethod*) method, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, func, NULL, NULL, NULL, 3);
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, func);
      _tmp6_ = vala_dynamic_method_get_dynamic_type (dynamic_method);
      _tmp7_ = vala_data_type_get_data_type (_tmp6_);
      if (_tmp7_ == ((ValaCCodeBaseModule*) self)->dbus_proxy_type) {
            const gchar* _tmp8_ = NULL;
            _tmp8_ = vala_symbol_get_name ((ValaSymbol*) method);
            vala_gd_bus_client_module_generate_marshalling (self, (ValaMethod*) method, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, NULL, _tmp8_);
      } else {
            ValaSourceReference* _tmp9_ = NULL;
            ValaDataType* _tmp10_ = NULL;
            gchar* _tmp11_ = NULL;
            gchar* _tmp12_;
            gchar* _tmp13_ = NULL;
            gchar* _tmp14_;
            _tmp9_ = vala_code_node_get_source_reference ((ValaCodeNode*) method);
            _tmp10_ = vala_dynamic_method_get_dynamic_type (dynamic_method);
            _tmp11_ = vala_code_node_to_string ((ValaCodeNode*) _tmp10_);
            _tmp12_ = _tmp11_;
            _tmp13_ = g_strdup_printf ("dynamic methods are not supported for `%s'", _tmp12_);
            _tmp14_ = _tmp13_;
            vala_report_error (_tmp9_, _tmp14_);
            _g_free0 (_tmp14_);
            _g_free0 (_tmp12_);
      }
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, func);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, func);
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (func);
      _vala_code_node_unref0 (dynamic_method);
}


static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface) {
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      gchar* lower_cname;
      gchar* _tmp9_;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_;
      gchar* _tmp14_;
      gchar* _tmp15_;
      gchar* _tmp16_;
      ValaCCodeFunction* _tmp17_ = NULL;
      ValaCCodeFunction* _tmp18_;
      ValaCCodeFunction* proxy_iface_init;
      gchar* _tmp19_ = NULL;
      gchar* _tmp20_;
      gchar* _tmp21_;
      gchar* _tmp22_;
      ValaCCodeParameter* _tmp23_ = NULL;
      ValaCCodeParameter* _tmp24_;
      ValaCCodeBlock* _tmp25_ = NULL;
      ValaCCodeBlock* iface_block;
      g_return_if_fail (self != NULL);
      g_return_if_fail (main_iface != NULL);
      g_return_if_fail (iface != NULL);
      {
            ValaList* _tmp0_ = NULL;
            ValaList* _prereq_list;
            gint _tmp1_;
            gint _prereq_size;
            gint _prereq_index;
            _tmp0_ = vala_interface_get_prerequisites (iface);
            _prereq_list = _tmp0_;
            _tmp1_ = vala_collection_get_size ((ValaCollection*) _prereq_list);
            _prereq_size = _tmp1_;
            _prereq_index = -1;
            while (TRUE) {
                  gpointer _tmp2_ = NULL;
                  ValaDataType* prereq;
                  ValaTypeSymbol* _tmp3_ = NULL;
                  _prereq_index = _prereq_index + 1;
                  if (!(_prereq_index < _prereq_size)) {
                        break;
                  }
                  _tmp2_ = vala_list_get (_prereq_list, _prereq_index);
                  prereq = (ValaDataType*) _tmp2_;
                  _tmp3_ = vala_data_type_get_data_type (prereq);
                  if (VALA_IS_INTERFACE (_tmp3_)) {
                        ValaTypeSymbol* _tmp4_ = NULL;
                        _tmp4_ = vala_data_type_get_data_type (prereq);
                        vala_gd_bus_client_module_generate_proxy_interface_init (self, main_iface, VALA_INTERFACE (_tmp4_));
                  }
                  _vala_code_node_unref0 (prereq);
            }
            _vala_iterable_unref0 (_prereq_list);
      }
      _tmp5_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "proxy", NULL);
      _tmp8_ = _tmp7_;
      _g_free0 (_tmp6_);
      lower_cname = _tmp8_;
      _tmp9_ = g_strconcat (lower_cname, "_", NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp12_ = _tmp11_;
      _tmp13_ = g_strconcat (_tmp10_, _tmp12_, NULL);
      _tmp14_ = _tmp13_;
      _tmp15_ = g_strconcat (_tmp14_, "interface_init", NULL);
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_function_new (_tmp16_, "void");
      _tmp18_ = _tmp17_;
      _g_free0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      _g_free0 (_tmp10_);
      proxy_iface_init = _tmp18_;
      _tmp19_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp20_ = _tmp19_;
      _tmp21_ = g_strconcat (_tmp20_, "Iface*", NULL);
      _tmp22_ = _tmp21_;
      _tmp23_ = vala_ccode_parameter_new ("iface", _tmp22_);
      _tmp24_ = _tmp23_;
      vala_ccode_function_add_parameter (proxy_iface_init, _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _g_free0 (_tmp22_);
      _g_free0 (_tmp20_);
      _tmp25_ = vala_ccode_block_new ();
      iface_block = _tmp25_;
      {
            ValaList* _tmp26_ = NULL;
            ValaList* _m_list;
            gint _tmp27_;
            gint _m_size;
            gint _m_index;
            _tmp26_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) iface);
            _m_list = _tmp26_;
            _tmp27_ = vala_collection_get_size ((ValaCollection*) _m_list);
            _m_size = _tmp27_;
            _m_index = -1;
            while (TRUE) {
                  gpointer _tmp28_ = NULL;
                  ValaMethod* m;
                  gboolean _tmp29_;
                  ValaCCodeIdentifier* _tmp30_ = NULL;
                  ValaCCodeIdentifier* _tmp31_;
                  const gchar* _tmp32_ = NULL;
                  ValaCCodeMemberAccess* _tmp33_ = NULL;
                  ValaCCodeMemberAccess* _tmp34_;
                  ValaCCodeMemberAccess* vfunc_entry;
                  gboolean _tmp35_;
                  _m_index = _m_index + 1;
                  if (!(_m_index < _m_size)) {
                        break;
                  }
                  _tmp28_ = vala_list_get (_m_list, _m_index);
                  m = (ValaMethod*) _tmp28_;
                  _tmp29_ = vala_method_get_is_abstract (m);
                  if (!_tmp29_) {
                        _vala_code_node_unref0 (m);
                        continue;
                  }
                  _tmp30_ = vala_ccode_identifier_new ("iface");
                  _tmp31_ = _tmp30_;
                  _tmp32_ = vala_method_get_vfunc_name (m);
                  _tmp33_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp31_, _tmp32_);
                  _tmp34_ = _tmp33_;
                  _vala_ccode_node_unref0 (_tmp31_);
                  vfunc_entry = _tmp34_;
                  _tmp35_ = vala_method_get_coroutine (m);
                  if (!_tmp35_) {
                        gchar* _tmp36_ = NULL;
                        gchar* _tmp37_;
                        ValaCCodeIdentifier* _tmp38_ = NULL;
                        ValaCCodeIdentifier* _tmp39_;
                        ValaCCodeAssignment* _tmp40_ = NULL;
                        ValaCCodeAssignment* _tmp41_;
                        ValaCCodeExpressionStatement* _tmp42_ = NULL;
                        ValaCCodeExpressionStatement* _tmp43_;
                        _tmp36_ = vala_gd_bus_client_module_generate_dbus_proxy_method (self, main_iface, iface, m);
                        _tmp37_ = _tmp36_;
                        _tmp38_ = vala_ccode_identifier_new (_tmp37_);
                        _tmp39_ = _tmp38_;
                        _tmp40_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp39_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp41_ = _tmp40_;
                        _tmp42_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp41_);
                        _tmp43_ = _tmp42_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp43_);
                        _vala_ccode_node_unref0 (_tmp43_);
                        _vala_ccode_node_unref0 (_tmp41_);
                        _vala_ccode_node_unref0 (_tmp39_);
                        _g_free0 (_tmp37_);
                  } else {
                        gchar* _tmp44_ = NULL;
                        gchar* _tmp45_;
                        ValaCCodeIdentifier* _tmp46_ = NULL;
                        ValaCCodeIdentifier* _tmp47_;
                        ValaCCodeAssignment* _tmp48_ = NULL;
                        ValaCCodeAssignment* _tmp49_;
                        ValaCCodeExpressionStatement* _tmp50_ = NULL;
                        ValaCCodeExpressionStatement* _tmp51_;
                        ValaCCodeIdentifier* _tmp52_ = NULL;
                        ValaCCodeIdentifier* _tmp53_;
                        gchar* _tmp54_ = NULL;
                        gchar* _tmp55_;
                        ValaCCodeMemberAccess* _tmp56_ = NULL;
                        gchar* _tmp57_ = NULL;
                        gchar* _tmp58_;
                        ValaCCodeIdentifier* _tmp59_ = NULL;
                        ValaCCodeIdentifier* _tmp60_;
                        ValaCCodeAssignment* _tmp61_ = NULL;
                        ValaCCodeAssignment* _tmp62_;
                        ValaCCodeExpressionStatement* _tmp63_ = NULL;
                        ValaCCodeExpressionStatement* _tmp64_;
                        _tmp44_ = vala_gd_bus_client_module_generate_async_dbus_proxy_method (self, main_iface, iface, m);
                        _tmp45_ = _tmp44_;
                        _tmp46_ = vala_ccode_identifier_new (_tmp45_);
                        _tmp47_ = _tmp46_;
                        _tmp48_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp47_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp49_ = _tmp48_;
                        _tmp50_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp49_);
                        _tmp51_ = _tmp50_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp51_);
                        _vala_ccode_node_unref0 (_tmp51_);
                        _vala_ccode_node_unref0 (_tmp49_);
                        _vala_ccode_node_unref0 (_tmp47_);
                        _g_free0 (_tmp45_);
                        _tmp52_ = vala_ccode_identifier_new ("iface");
                        _tmp53_ = _tmp52_;
                        _tmp54_ = vala_method_get_finish_vfunc_name (m);
                        _tmp55_ = _tmp54_;
                        _tmp56_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp53_, _tmp55_);
                        _vala_ccode_node_unref0 (vfunc_entry);
                        vfunc_entry = _tmp56_;
                        _g_free0 (_tmp55_);
                        _vala_ccode_node_unref0 (_tmp53_);
                        _tmp57_ = vala_gd_bus_client_module_generate_finish_dbus_proxy_method (self, main_iface, iface, m);
                        _tmp58_ = _tmp57_;
                        _tmp59_ = vala_ccode_identifier_new (_tmp58_);
                        _tmp60_ = _tmp59_;
                        _tmp61_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp60_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp62_ = _tmp61_;
                        _tmp63_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp62_);
                        _tmp64_ = _tmp63_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp64_);
                        _vala_ccode_node_unref0 (_tmp64_);
                        _vala_ccode_node_unref0 (_tmp62_);
                        _vala_ccode_node_unref0 (_tmp60_);
                        _g_free0 (_tmp58_);
                  }
                  _vala_ccode_node_unref0 (vfunc_entry);
                  _vala_code_node_unref0 (m);
            }
            _vala_iterable_unref0 (_m_list);
      }
      {
            ValaList* _tmp65_ = NULL;
            ValaList* _prop_list;
            gint _tmp66_;
            gint _prop_size;
            gint _prop_index;
            _tmp65_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) iface);
            _prop_list = _tmp65_;
            _tmp66_ = vala_collection_get_size ((ValaCollection*) _prop_list);
            _prop_size = _tmp66_;
            _prop_index = -1;
            while (TRUE) {
                  gpointer _tmp67_ = NULL;
                  ValaProperty* prop;
                  gboolean _tmp68_;
                  ValaPropertyAccessor* _tmp69_ = NULL;
                  ValaPropertyAccessor* _tmp85_ = NULL;
                  _prop_index = _prop_index + 1;
                  if (!(_prop_index < _prop_size)) {
                        break;
                  }
                  _tmp67_ = vala_list_get (_prop_list, _prop_index);
                  prop = (ValaProperty*) _tmp67_;
                  _tmp68_ = vala_property_get_is_abstract (prop);
                  if (!_tmp68_) {
                        _vala_code_node_unref0 (prop);
                        continue;
                  }
                  _tmp69_ = vala_property_get_get_accessor (prop);
                  if (_tmp69_ != NULL) {
                        ValaCCodeIdentifier* _tmp70_ = NULL;
                        ValaCCodeIdentifier* _tmp71_;
                        const gchar* _tmp72_ = NULL;
                        gchar* _tmp73_;
                        gchar* _tmp74_;
                        ValaCCodeMemberAccess* _tmp75_ = NULL;
                        ValaCCodeMemberAccess* _tmp76_;
                        ValaCCodeMemberAccess* vfunc_entry;
                        gchar* _tmp77_ = NULL;
                        gchar* _tmp78_;
                        ValaCCodeIdentifier* _tmp79_ = NULL;
                        ValaCCodeIdentifier* _tmp80_;
                        ValaCCodeAssignment* _tmp81_ = NULL;
                        ValaCCodeAssignment* _tmp82_;
                        ValaCCodeExpressionStatement* _tmp83_ = NULL;
                        ValaCCodeExpressionStatement* _tmp84_;
                        _tmp70_ = vala_ccode_identifier_new ("iface");
                        _tmp71_ = _tmp70_;
                        _tmp72_ = vala_symbol_get_name ((ValaSymbol*) prop);
                        _tmp73_ = g_strconcat ("get_", _tmp72_, NULL);
                        _tmp74_ = _tmp73_;
                        _tmp75_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp71_, _tmp74_);
                        _tmp76_ = _tmp75_;
                        _g_free0 (_tmp74_);
                        _vala_ccode_node_unref0 (_tmp71_);
                        vfunc_entry = _tmp76_;
                        _tmp77_ = vala_gd_bus_client_module_generate_dbus_proxy_property_get (self, main_iface, iface, prop);
                        _tmp78_ = _tmp77_;
                        _tmp79_ = vala_ccode_identifier_new (_tmp78_);
                        _tmp80_ = _tmp79_;
                        _tmp81_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp80_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp82_ = _tmp81_;
                        _tmp83_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp82_);
                        _tmp84_ = _tmp83_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp84_);
                        _vala_ccode_node_unref0 (_tmp84_);
                        _vala_ccode_node_unref0 (_tmp82_);
                        _vala_ccode_node_unref0 (_tmp80_);
                        _g_free0 (_tmp78_);
                        _vala_ccode_node_unref0 (vfunc_entry);
                  }
                  _tmp85_ = vala_property_get_set_accessor (prop);
                  if (_tmp85_ != NULL) {
                        ValaCCodeIdentifier* _tmp86_ = NULL;
                        ValaCCodeIdentifier* _tmp87_;
                        const gchar* _tmp88_ = NULL;
                        gchar* _tmp89_;
                        gchar* _tmp90_;
                        ValaCCodeMemberAccess* _tmp91_ = NULL;
                        ValaCCodeMemberAccess* _tmp92_;
                        ValaCCodeMemberAccess* vfunc_entry;
                        gchar* _tmp93_ = NULL;
                        gchar* _tmp94_;
                        ValaCCodeIdentifier* _tmp95_ = NULL;
                        ValaCCodeIdentifier* _tmp96_;
                        ValaCCodeAssignment* _tmp97_ = NULL;
                        ValaCCodeAssignment* _tmp98_;
                        ValaCCodeExpressionStatement* _tmp99_ = NULL;
                        ValaCCodeExpressionStatement* _tmp100_;
                        _tmp86_ = vala_ccode_identifier_new ("iface");
                        _tmp87_ = _tmp86_;
                        _tmp88_ = vala_symbol_get_name ((ValaSymbol*) prop);
                        _tmp89_ = g_strconcat ("set_", _tmp88_, NULL);
                        _tmp90_ = _tmp89_;
                        _tmp91_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp87_, _tmp90_);
                        _tmp92_ = _tmp91_;
                        _g_free0 (_tmp90_);
                        _vala_ccode_node_unref0 (_tmp87_);
                        vfunc_entry = _tmp92_;
                        _tmp93_ = vala_gd_bus_client_module_generate_dbus_proxy_property_set (self, main_iface, iface, prop);
                        _tmp94_ = _tmp93_;
                        _tmp95_ = vala_ccode_identifier_new (_tmp94_);
                        _tmp96_ = _tmp95_;
                        _tmp97_ = vala_ccode_assignment_new ((ValaCCodeExpression*) vfunc_entry, (ValaCCodeExpression*) _tmp96_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
                        _tmp98_ = _tmp97_;
                        _tmp99_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp98_);
                        _tmp100_ = _tmp99_;
                        vala_ccode_block_add_statement (iface_block, (ValaCCodeNode*) _tmp100_);
                        _vala_ccode_node_unref0 (_tmp100_);
                        _vala_ccode_node_unref0 (_tmp98_);
                        _vala_ccode_node_unref0 (_tmp96_);
                        _g_free0 (_tmp94_);
                        _vala_ccode_node_unref0 (vfunc_entry);
                  }
                  _vala_code_node_unref0 (prop);
            }
            _vala_iterable_unref0 (_prop_list);
      }
      vala_ccode_function_set_modifiers (proxy_iface_init, VALA_CCODE_MODIFIERS_STATIC);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, proxy_iface_init);
      vala_ccode_function_set_block (proxy_iface_init, iface_block);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_iface_init);
      _vala_ccode_node_unref0 (iface_block);
      _vala_ccode_node_unref0 (proxy_iface_init);
      _g_free0 (lower_cname);
}


static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface) {
      gchar* result = NULL;
      gchar* _tmp0_;
      gchar* _result_;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_ = NULL;
      gchar* _tmp14_;
      gchar* _tmp15_ = NULL;
      gchar* _tmp16_;
      gchar* _tmp17_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (define_type != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      _tmp0_ = g_strdup ("");
      _result_ = _tmp0_;
      {
            ValaList* _tmp1_ = NULL;
            ValaList* _prereq_list;
            gint _tmp2_;
            gint _prereq_size;
            gint _prereq_index;
            _tmp1_ = vala_interface_get_prerequisites (iface);
            _prereq_list = _tmp1_;
            _tmp2_ = vala_collection_get_size ((ValaCollection*) _prereq_list);
            _prereq_size = _tmp2_;
            _prereq_index = -1;
            while (TRUE) {
                  gpointer _tmp3_ = NULL;
                  ValaDataType* prereq;
                  ValaTypeSymbol* _tmp4_ = NULL;
                  _prereq_index = _prereq_index + 1;
                  if (!(_prereq_index < _prereq_size)) {
                        break;
                  }
                  _tmp3_ = vala_list_get (_prereq_list, _prereq_index);
                  prereq = (ValaDataType*) _tmp3_;
                  _tmp4_ = vala_data_type_get_data_type (prereq);
                  if (VALA_IS_INTERFACE (_tmp4_)) {
                        ValaTypeSymbol* _tmp5_ = NULL;
                        gchar* _tmp6_ = NULL;
                        gchar* _tmp7_;
                        gchar* _tmp8_;
                        _tmp5_ = vala_data_type_get_data_type (prereq);
                        _tmp6_ = vala_gd_bus_client_module_implement_interface (self, define_type, main_iface, VALA_INTERFACE (_tmp5_));
                        _tmp7_ = _tmp6_;
                        _tmp8_ = g_strconcat (_result_, _tmp7_, NULL);
                        _g_free0 (_result_);
                        _result_ = _tmp8_;
                        _g_free0 (_tmp7_);
                  }
                  _vala_code_node_unref0 (prereq);
            }
            _vala_iterable_unref0 (_prereq_list);
      }
      _tmp9_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) iface, "TYPE_");
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp12_ = _tmp11_;
      _tmp13_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp14_ = _tmp13_;
      _tmp15_ = g_strdup_printf ("G_IMPLEMENT_INTERFACE (%s, %sproxy_%sinterface_init) ", _tmp10_, _tmp12_, _tmp14_);
      _tmp16_ = _tmp15_;
      _tmp17_ = g_strconcat (_result_, _tmp16_, NULL);
      _g_free0 (_result_);
      _result_ = _tmp17_;
      _g_free0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      _g_free0 (_tmp10_);
      result = _result_;
      return result;
}


static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space) {
      ValaGDBusClientModule * self;
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* get_type_name;
      gboolean _tmp5_;
      ValaCCodeNewline* _tmp6_ = NULL;
      ValaCCodeNewline* _tmp7_;
      gchar* _tmp8_ = NULL;
      gchar* macro;
      gchar* _tmp9_ = NULL;
      gchar* _tmp10_;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      ValaCCodeMacroReplacement* _tmp13_ = NULL;
      ValaCCodeMacroReplacement* _tmp14_;
      ValaCCodeFunction* _tmp15_ = NULL;
      ValaCCodeFunction* proxy_get_type;
      self = (ValaGDBusClientModule*) base;
      g_return_if_fail (iface != NULL);
      g_return_if_fail (decl_space != NULL);
      VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_client_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) VALA_GD_BUS_MODULE (self), iface, decl_space);
      _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp0_;
      if (dbus_iface_name == NULL) {
            _g_free0 (dbus_iface_name);
            return;
      }
      _tmp1_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp2_ = _tmp1_;
      _tmp3_ = g_strdup_printf ("%sproxy_get_type", _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp2_);
      get_type_name = _tmp4_;
      _tmp5_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, decl_space, (ValaSymbol*) iface, get_type_name);
      if (_tmp5_) {
            _g_free0 (get_type_name);
            _g_free0 (dbus_iface_name);
            return;
      }
      _tmp6_ = vala_ccode_newline_new ();
      _tmp7_ = _tmp6_;
      vala_ccode_file_add_type_declaration (decl_space, (ValaCCodeNode*) _tmp7_);
      _vala_ccode_node_unref0 (_tmp7_);
      _tmp8_ = g_strdup_printf ("(%s ())", get_type_name);
      macro = _tmp8_;
      _tmp9_ = vala_typesymbol_get_type_id ((ValaTypeSymbol*) iface);
      _tmp10_ = _tmp9_;
      _tmp11_ = g_strdup_printf ("%s_PROXY", _tmp10_);
      _tmp12_ = _tmp11_;
      _tmp13_ = vala_ccode_macro_replacement_new (_tmp12_, macro);
      _tmp14_ = _tmp13_;
      vala_ccode_file_add_type_declaration (decl_space, (ValaCCodeNode*) _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      _g_free0 (_tmp12_);
      _g_free0 (_tmp10_);
      _tmp15_ = vala_ccode_function_new (get_type_name, "GType");
      proxy_get_type = _tmp15_;
      vala_ccode_function_set_attributes (proxy_get_type, "G_GNUC_CONST");
      vala_ccode_file_add_function_declaration (decl_space, proxy_get_type);
      _vala_ccode_node_unref0 (proxy_get_type);
      _g_free0 (macro);
      _g_free0 (get_type_name);
      _g_free0 (dbus_iface_name);
}


static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
      ValaGDBusClientModule * self;
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      gchar* _tmp1_ = NULL;
      gchar* _tmp2_;
      gchar* _tmp3_;
      gchar* _tmp4_;
      gchar* cname;
      gchar* _tmp5_ = NULL;
      gchar* _tmp6_;
      gchar* _tmp7_;
      gchar* _tmp8_;
      gchar* lower_cname;
      ValaCCodeVariableDeclarator* _tmp9_ = NULL;
      ValaCCodeVariableDeclarator* _tmp10_;
      ValaCCodeTypeDefinition* _tmp11_ = NULL;
      ValaCCodeTypeDefinition* _tmp12_;
      gchar* _tmp13_;
      gchar* _tmp14_;
      ValaCCodeVariableDeclarator* _tmp15_ = NULL;
      ValaCCodeVariableDeclarator* _tmp16_;
      ValaCCodeTypeDefinition* _tmp17_ = NULL;
      ValaCCodeTypeDefinition* _tmp18_;
      ValaCCodeIdentifier* _tmp19_ = NULL;
      ValaCCodeIdentifier* _tmp20_;
      ValaCCodeFunctionCall* _tmp21_ = NULL;
      ValaCCodeFunctionCall* _tmp22_;
      ValaCCodeFunctionCall* define_type;
      ValaCCodeIdentifier* _tmp23_ = NULL;
      ValaCCodeIdentifier* _tmp24_;
      ValaCCodeIdentifier* _tmp25_ = NULL;
      ValaCCodeIdentifier* _tmp26_;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeConstant* _tmp29_ = NULL;
      ValaCCodeConstant* _tmp30_;
      gchar* _tmp31_ = NULL;
      gchar* _tmp32_;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      gchar* _tmp35_;
      gchar* _tmp36_;
      ValaCCodeFunction* _tmp37_ = NULL;
      ValaCCodeFunction* _tmp38_;
      ValaCCodeFunction* proxy_class_init;
      gchar* _tmp39_;
      gchar* _tmp40_;
      ValaCCodeParameter* _tmp41_ = NULL;
      ValaCCodeParameter* _tmp42_;
      ValaCCodeBlock* _tmp43_ = NULL;
      ValaCCodeBlock* _tmp44_;
      ValaCCodeIdentifier* _tmp45_ = NULL;
      ValaCCodeIdentifier* _tmp46_;
      ValaCCodeFunctionCall* _tmp47_ = NULL;
      ValaCCodeFunctionCall* _tmp48_;
      ValaCCodeFunctionCall* proxy_class;
      ValaCCodeIdentifier* _tmp49_ = NULL;
      ValaCCodeIdentifier* _tmp50_;
      ValaCCodeBlock* _tmp51_ = NULL;
      ValaCCodeMemberAccess* _tmp52_ = NULL;
      ValaCCodeMemberAccess* _tmp53_;
      gchar* _tmp54_;
      gchar* _tmp55_;
      ValaCCodeIdentifier* _tmp56_ = NULL;
      ValaCCodeIdentifier* _tmp57_;
      ValaCCodeAssignment* _tmp58_ = NULL;
      ValaCCodeAssignment* _tmp59_;
      ValaCCodeExpressionStatement* _tmp60_ = NULL;
      ValaCCodeExpressionStatement* _tmp61_;
      gchar* _tmp62_;
      gchar* _tmp63_;
      ValaCCodeFunction* _tmp64_ = NULL;
      ValaCCodeFunction* _tmp65_;
      ValaCCodeFunction* proxy_instance_init;
      gchar* _tmp66_;
      gchar* _tmp67_;
      ValaCCodeParameter* _tmp68_ = NULL;
      ValaCCodeParameter* _tmp69_;
      ValaCCodeBlock* _tmp70_ = NULL;
      ValaCCodeBlock* _tmp71_;
      self = (ValaGDBusClientModule*) base;
      g_return_if_fail (iface != NULL);
      VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_interface ((ValaCodeVisitor*) VALA_GD_BUS_MODULE (self), iface);
      _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp0_;
      if (dbus_iface_name == NULL) {
            _g_free0 (dbus_iface_name);
            return;
      }
      vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "gio/gio.h", FALSE);
      _tmp1_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp2_ = _tmp1_;
      _tmp3_ = g_strconcat (_tmp2_, "Proxy", NULL);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp2_);
      cname = _tmp4_;
      _tmp5_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) iface);
      _tmp6_ = _tmp5_;
      _tmp7_ = g_strconcat (_tmp6_, "proxy", NULL);
      _tmp8_ = _tmp7_;
      _g_free0 (_tmp6_);
      lower_cname = _tmp8_;
      _tmp9_ = vala_ccode_variable_declarator_new (cname, NULL, NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_type_definition_new ("GDBusProxy", (ValaCCodeDeclarator*) _tmp10_);
      _tmp12_ = _tmp11_;
      vala_ccode_file_add_type_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _vala_ccode_node_unref0 (_tmp10_);
      _tmp13_ = g_strconcat (cname, "Class", NULL);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_variable_declarator_new (_tmp14_, NULL, NULL);
      _tmp16_ = _tmp15_;
      _tmp17_ = vala_ccode_type_definition_new ("GDBusProxyClass", (ValaCCodeDeclarator*) _tmp16_);
      _tmp18_ = _tmp17_;
      vala_ccode_file_add_type_declaration (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) _tmp18_);
      _vala_ccode_node_unref0 (_tmp18_);
      _vala_ccode_node_unref0 (_tmp16_);
      _g_free0 (_tmp14_);
      _tmp19_ = vala_ccode_identifier_new ("G_DEFINE_TYPE_EXTENDED");
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp20_);
      _tmp22_ = _tmp21_;
      _vala_ccode_node_unref0 (_tmp20_);
      define_type = _tmp22_;
      _tmp23_ = vala_ccode_identifier_new (cname);
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_identifier_new (lower_cname);
      _tmp26_ = _tmp25_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp27_ = vala_ccode_identifier_new ("G_TYPE_DBUS_PROXY");
      _tmp28_ = _tmp27_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp28_);
      _vala_ccode_node_unref0 (_tmp28_);
      _tmp29_ = vala_ccode_constant_new ("0");
      _tmp30_ = _tmp29_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp30_);
      _vala_ccode_node_unref0 (_tmp30_);
      _tmp31_ = vala_gd_bus_client_module_implement_interface (self, define_type, iface, iface);
      _tmp32_ = _tmp31_;
      _tmp33_ = vala_ccode_identifier_new (_tmp32_);
      _tmp34_ = _tmp33_;
      vala_ccode_function_call_add_argument (define_type, (ValaCCodeExpression*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _g_free0 (_tmp32_);
      vala_ccode_file_add_type_member_definition (((ValaCCodeBaseModule*) self)->cfile, (ValaCCodeNode*) define_type);
      _tmp35_ = g_strconcat (lower_cname, "_class_init", NULL);
      _tmp36_ = _tmp35_;
      _tmp37_ = vala_ccode_function_new (_tmp36_, "void");
      _tmp38_ = _tmp37_;
      _g_free0 (_tmp36_);
      proxy_class_init = _tmp38_;
      _tmp39_ = g_strconcat (cname, "Class*", NULL);
      _tmp40_ = _tmp39_;
      _tmp41_ = vala_ccode_parameter_new ("klass", _tmp40_);
      _tmp42_ = _tmp41_;
      vala_ccode_function_add_parameter (proxy_class_init, _tmp42_);
      _vala_ccode_node_unref0 (_tmp42_);
      _g_free0 (_tmp40_);
      vala_ccode_function_set_modifiers (proxy_class_init, VALA_CCODE_MODIFIERS_STATIC);
      _tmp43_ = vala_ccode_block_new ();
      _tmp44_ = _tmp43_;
      vala_ccode_function_set_block (proxy_class_init, _tmp44_);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp45_ = vala_ccode_identifier_new ("G_DBUS_PROXY_CLASS");
      _tmp46_ = _tmp45_;
      _tmp47_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp46_);
      _tmp48_ = _tmp47_;
      _vala_ccode_node_unref0 (_tmp46_);
      proxy_class = _tmp48_;
      _tmp49_ = vala_ccode_identifier_new ("klass");
      _tmp50_ = _tmp49_;
      vala_ccode_function_call_add_argument (proxy_class, (ValaCCodeExpression*) _tmp50_);
      _vala_ccode_node_unref0 (_tmp50_);
      _tmp51_ = vala_ccode_function_get_block (proxy_class_init);
      _tmp52_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) proxy_class, "g_signal");
      _tmp53_ = _tmp52_;
      _tmp54_ = g_strconcat (lower_cname, "_g_signal", NULL);
      _tmp55_ = _tmp54_;
      _tmp56_ = vala_ccode_identifier_new (_tmp55_);
      _tmp57_ = _tmp56_;
      _tmp58_ = vala_ccode_assignment_new ((ValaCCodeExpression*) _tmp53_, (ValaCCodeExpression*) _tmp57_, VALA_CCODE_ASSIGNMENT_OPERATOR_SIMPLE);
      _tmp59_ = _tmp58_;
      _tmp60_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp59_);
      _tmp61_ = _tmp60_;
      vala_ccode_block_add_statement (_tmp51_, (ValaCCodeNode*) _tmp61_);
      _vala_ccode_node_unref0 (_tmp61_);
      _vala_ccode_node_unref0 (_tmp59_);
      _vala_ccode_node_unref0 (_tmp57_);
      _g_free0 (_tmp55_);
      _vala_ccode_node_unref0 (_tmp53_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_class_init);
      vala_gd_bus_client_module_generate_signal_handler_function (self, (ValaObjectTypeSymbol*) iface);
      _tmp62_ = g_strconcat (lower_cname, "_init", NULL);
      _tmp63_ = _tmp62_;
      _tmp64_ = vala_ccode_function_new (_tmp63_, "void");
      _tmp65_ = _tmp64_;
      _g_free0 (_tmp63_);
      proxy_instance_init = _tmp65_;
      _tmp66_ = g_strconcat (cname, "*", NULL);
      _tmp67_ = _tmp66_;
      _tmp68_ = vala_ccode_parameter_new ("self", _tmp67_);
      _tmp69_ = _tmp68_;
      vala_ccode_function_add_parameter (proxy_instance_init, _tmp69_);
      _vala_ccode_node_unref0 (_tmp69_);
      _g_free0 (_tmp67_);
      vala_ccode_function_set_modifiers (proxy_instance_init, VALA_CCODE_MODIFIERS_STATIC);
      _tmp70_ = vala_ccode_block_new ();
      _tmp71_ = _tmp70_;
      vala_ccode_function_set_block (proxy_instance_init, _tmp71_);
      _vala_ccode_node_unref0 (_tmp71_);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, proxy_instance_init);
      vala_gd_bus_client_module_generate_proxy_interface_init (self, iface, iface);
      _vala_ccode_node_unref0 (proxy_instance_init);
      _vala_ccode_node_unref0 (proxy_class);
      _vala_ccode_node_unref0 (proxy_class_init);
      _vala_ccode_node_unref0 (define_type);
      _g_free0 (lower_cname);
      _g_free0 (cname);
      _g_free0 (dbus_iface_name);
}


static gpointer _vala_ccode_node_ref0 (gpointer self) {
      return self ? vala_ccode_node_ref (self) : NULL;
}


static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) {
      ValaGDBusClientModule * self;
      ValaExpression* _tmp0_ = NULL;
      ValaDataType* _tmp1_ = NULL;
      ValaDataType* _tmp2_;
      ValaMethodType* _tmp3_;
      ValaMethodType* mtype;
      gboolean _tmp4_ = FALSE;
      gboolean bus_get_proxy_async;
      gboolean _tmp8_ = FALSE;
      gboolean bus_get_proxy_sync;
      gboolean _tmp12_ = FALSE;
      gboolean conn_get_proxy_async;
      gboolean _tmp16_ = FALSE;
      gboolean conn_get_proxy_sync;
      gboolean _tmp20_ = FALSE;
      gboolean _tmp21_ = FALSE;
      gboolean _tmp22_ = FALSE;
      ValaExpression* _tmp23_ = NULL;
      ValaMemberAccess* _tmp24_;
      ValaMemberAccess* ma;
      ValaList* _tmp25_ = NULL;
      ValaList* _tmp26_;
      gpointer _tmp27_ = NULL;
      ValaDataType* _tmp28_;
      ValaDataType* type_arg;
      ValaCCodeExpression* proxy_type = NULL;
      ValaCCodeExpression* dbus_iface_name = NULL;
      ValaDataType* _tmp29_;
      ValaObjectType* _tmp30_;
      ValaObjectType* object_type;
      gint base_arg_index;
      gboolean _tmp77_ = FALSE;
      ValaList* _tmp78_ = NULL;
      ValaList* args;
      gpointer _tmp79_ = NULL;
      ValaExpression* name;
      gpointer _tmp80_ = NULL;
      ValaExpression* object_path;
      gpointer _tmp81_ = NULL;
      ValaExpression* flags;
      gpointer _tmp82_ = NULL;
      ValaExpression* cancellable;
      ValaCCodeFunctionCall* ccall = NULL;
      gboolean _tmp83_ = FALSE;
      gboolean _tmp90_ = FALSE;
      ValaCCodeExpression* _tmp93_ = NULL;
      ValaCCodeExpression* _tmp94_;
      gboolean _tmp95_ = FALSE;
      ValaCCodeConstant* _tmp113_ = NULL;
      ValaCCodeConstant* _tmp114_;
      ValaCCodeExpression* _tmp115_ = NULL;
      ValaCCodeExpression* _tmp116_;
      ValaCCodeConstant* _tmp117_ = NULL;
      ValaCCodeConstant* _tmp118_;
      ValaCCodeExpression* _tmp119_ = NULL;
      ValaCCodeExpression* _tmp120_;
      gboolean _tmp121_ = FALSE;
      ValaCCodeConstant* _tmp142_ = NULL;
      ValaCCodeConstant* _tmp143_;
      ValaCCodeExpression* _tmp144_ = NULL;
      ValaCCodeExpression* _tmp145_;
      ValaCCodeConstant* _tmp146_ = NULL;
      ValaCCodeConstant* _tmp147_;
      ValaCCodeConstant* _tmp148_ = NULL;
      ValaCCodeConstant* _tmp149_;
      gboolean _tmp150_ = FALSE;
      ValaDataType* _tmp185_ = NULL;
      ValaDataType* _tmp186_ = NULL;
      gboolean _tmp187_;
      ValaLocalVariable* _tmp188_ = NULL;
      ValaLocalVariable* temp_var;
      const gchar* _tmp189_ = NULL;
      ValaCCodeExpression* _tmp190_ = NULL;
      ValaCCodeExpression* temp_ref;
      ValaCCodeFunction* _tmp191_ = NULL;
      self = (ValaGDBusClientModule*) base;
      g_return_if_fail (expr != NULL);
      _tmp0_ = vala_method_call_get_call (expr);
      _tmp1_ = vala_expression_get_value_type (_tmp0_);
      _tmp2_ = _tmp1_;
      _tmp3_ = _vala_code_node_ref0 (VALA_IS_METHOD_TYPE (_tmp2_) ? ((ValaMethodType*) _tmp2_) : NULL);
      mtype = _tmp3_;
      if (mtype != NULL) {
            ValaMethod* _tmp5_ = NULL;
            gchar* _tmp6_ = NULL;
            gchar* _tmp7_;
            _tmp5_ = vala_method_type_get_method_symbol (mtype);
            _tmp6_ = vala_method_get_cname (_tmp5_);
            _tmp7_ = _tmp6_;
            _tmp4_ = g_strcmp0 (_tmp7_, "g_bus_get_proxy") == 0;
            _g_free0 (_tmp7_);
      } else {
            _tmp4_ = FALSE;
      }
      bus_get_proxy_async = _tmp4_;
      if (mtype != NULL) {
            ValaMethod* _tmp9_ = NULL;
            gchar* _tmp10_ = NULL;
            gchar* _tmp11_;
            _tmp9_ = vala_method_type_get_method_symbol (mtype);
            _tmp10_ = vala_method_get_cname (_tmp9_);
            _tmp11_ = _tmp10_;
            _tmp8_ = g_strcmp0 (_tmp11_, "g_bus_get_proxy_sync") == 0;
            _g_free0 (_tmp11_);
      } else {
            _tmp8_ = FALSE;
      }
      bus_get_proxy_sync = _tmp8_;
      if (mtype != NULL) {
            ValaMethod* _tmp13_ = NULL;
            gchar* _tmp14_ = NULL;
            gchar* _tmp15_;
            _tmp13_ = vala_method_type_get_method_symbol (mtype);
            _tmp14_ = vala_method_get_cname (_tmp13_);
            _tmp15_ = _tmp14_;
            _tmp12_ = g_strcmp0 (_tmp15_, "g_dbus_connection_get_proxy") == 0;
            _g_free0 (_tmp15_);
      } else {
            _tmp12_ = FALSE;
      }
      conn_get_proxy_async = _tmp12_;
      if (mtype != NULL) {
            ValaMethod* _tmp17_ = NULL;
            gchar* _tmp18_ = NULL;
            gchar* _tmp19_;
            _tmp17_ = vala_method_type_get_method_symbol (mtype);
            _tmp18_ = vala_method_get_cname (_tmp17_);
            _tmp19_ = _tmp18_;
            _tmp16_ = g_strcmp0 (_tmp19_, "g_dbus_connection_get_proxy_sync") == 0;
            _g_free0 (_tmp19_);
      } else {
            _tmp16_ = FALSE;
      }
      conn_get_proxy_sync = _tmp16_;
      if (!bus_get_proxy_async) {
            _tmp22_ = !bus_get_proxy_sync;
      } else {
            _tmp22_ = FALSE;
      }
      if (_tmp22_) {
            _tmp21_ = !conn_get_proxy_async;
      } else {
            _tmp21_ = FALSE;
      }
      if (_tmp21_) {
            _tmp20_ = !conn_get_proxy_sync;
      } else {
            _tmp20_ = FALSE;
      }
      if (_tmp20_) {
            VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_method_call ((ValaCodeVisitor*) VALA_GD_BUS_MODULE (self), expr);
            _vala_code_node_unref0 (mtype);
            return;
      }
      _tmp23_ = vala_method_call_get_call (expr);
      _tmp24_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp23_));
      ma = _tmp24_;
      _tmp25_ = vala_member_access_get_type_arguments (ma);
      _tmp26_ = _tmp25_;
      _tmp27_ = vala_list_get (_tmp26_, 0);
      _tmp28_ = (ValaDataType*) _tmp27_;
      _vala_iterable_unref0 (_tmp26_);
      type_arg = _tmp28_;
      _tmp29_ = type_arg;
      _tmp30_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp29_) ? ((ValaObjectType*) _tmp29_) : NULL);
      object_type = _tmp30_;
      if (object_type != NULL) {
            ValaObjectTypeSymbol* _tmp31_ = NULL;
            ValaInterface* _tmp32_;
            ValaInterface* iface;
            gchar* _tmp33_ = NULL;
            gchar* _tmp34_;
            gboolean _tmp35_;
            gchar* _tmp41_ = NULL;
            gchar* _tmp42_;
            gchar* _tmp43_ = NULL;
            gchar* _tmp44_;
            ValaCCodeIdentifier* _tmp45_ = NULL;
            gchar* _tmp46_ = NULL;
            gchar* _tmp47_;
            gchar* _tmp48_ = NULL;
            gchar* _tmp49_;
            ValaCCodeConstant* _tmp50_ = NULL;
            _tmp31_ = vala_object_type_get_type_symbol (object_type);
            _tmp32_ = _vala_code_node_ref0 (VALA_INTERFACE (_tmp31_));
            iface = _tmp32_;
            _tmp33_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
            _tmp34_ = _tmp33_;
            _tmp35_ = _tmp34_ == NULL;
            _g_free0 (_tmp34_);
            if (_tmp35_) {
                  ValaSourceReference* _tmp36_ = NULL;
                  gchar* _tmp37_ = NULL;
                  gchar* _tmp38_;
                  gchar* _tmp39_ = NULL;
                  gchar* _tmp40_;
                  _tmp36_ = vala_code_node_get_source_reference ((ValaCodeNode*) expr);
                  _tmp37_ = vala_symbol_get_full_name ((ValaSymbol*) iface);
                  _tmp38_ = _tmp37_;
                  _tmp39_ = g_strdup_printf ("`%s' is not a D-Bus interface", _tmp38_);
                  _tmp40_ = _tmp39_;
                  vala_report_error (_tmp36_, _tmp40_);
                  _g_free0 (_tmp40_);
                  _g_free0 (_tmp38_);
                  _vala_code_node_unref0 (iface);
                  _vala_code_node_unref0 (object_type);
                  _vala_ccode_node_unref0 (dbus_iface_name);
                  _vala_ccode_node_unref0 (proxy_type);
                  _vala_code_node_unref0 (type_arg);
                  _vala_code_node_unref0 (ma);
                  _vala_code_node_unref0 (mtype);
                  return;
            }
            _tmp41_ = vala_typesymbol_get_type_id ((ValaTypeSymbol*) iface);
            _tmp42_ = _tmp41_;
            _tmp43_ = g_strdup_printf ("%s_PROXY", _tmp42_);
            _tmp44_ = _tmp43_;
            _tmp45_ = vala_ccode_identifier_new (_tmp44_);
            _vala_ccode_node_unref0 (proxy_type);
            proxy_type = (ValaCCodeExpression*) _tmp45_;
            _g_free0 (_tmp44_);
            _g_free0 (_tmp42_);
            _tmp46_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
            _tmp47_ = _tmp46_;
            _tmp48_ = g_strdup_printf ("\"%s\"", _tmp47_);
            _tmp49_ = _tmp48_;
            _tmp50_ = vala_ccode_constant_new (_tmp49_);
            _vala_ccode_node_unref0 (dbus_iface_name);
            dbus_iface_name = (ValaCCodeExpression*) _tmp50_;
            _g_free0 (_tmp49_);
            _g_free0 (_tmp47_);
            _vala_code_node_unref0 (iface);
      } else {
            ValaCCodeIdentifier* _tmp51_ = NULL;
            ValaCCodeIdentifier* _tmp52_;
            ValaCCodeFunctionCall* _tmp53_ = NULL;
            ValaCCodeFunctionCall* _tmp54_;
            ValaCCodeFunctionCall* quark;
            ValaCCodeConstant* _tmp55_ = NULL;
            ValaCCodeConstant* _tmp56_;
            ValaCCodeIdentifier* _tmp57_ = NULL;
            ValaCCodeIdentifier* _tmp58_;
            ValaCCodeFunctionCall* _tmp59_ = NULL;
            ValaCCodeFunctionCall* _tmp60_;
            ValaCCodeFunctionCall* get_qdata;
            ValaCCodeExpression* _tmp61_ = NULL;
            ValaCCodeExpression* _tmp62_;
            ValaCCodeCastExpression* _tmp63_ = NULL;
            ValaCCodeCastExpression* _tmp64_;
            ValaCCodeFunctionCall* _tmp65_ = NULL;
            ValaCCodeIdentifier* _tmp66_ = NULL;
            ValaCCodeIdentifier* _tmp67_;
            ValaCCodeFunctionCall* _tmp68_ = NULL;
            ValaCCodeConstant* _tmp69_ = NULL;
            ValaCCodeConstant* _tmp70_;
            ValaCCodeIdentifier* _tmp71_ = NULL;
            ValaCCodeIdentifier* _tmp72_;
            ValaCCodeFunctionCall* _tmp73_ = NULL;
            ValaCCodeExpression* _tmp74_ = NULL;
            ValaCCodeExpression* _tmp75_;
            ValaCCodeExpression* _tmp76_;
            _tmp51_ = vala_ccode_identifier_new ("g_quark_from_static_string");
            _tmp52_ = _tmp51_;
            _tmp53_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp52_);
            _tmp54_ = _tmp53_;
            _vala_ccode_node_unref0 (_tmp52_);
            quark = _tmp54_;
            _tmp55_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
            _tmp56_ = _tmp55_;
            vala_ccode_function_call_add_argument (quark, (ValaCCodeExpression*) _tmp56_);
            _vala_ccode_node_unref0 (_tmp56_);
            _tmp57_ = vala_ccode_identifier_new ("g_type_get_qdata");
            _tmp58_ = _tmp57_;
            _tmp59_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp58_);
            _tmp60_ = _tmp59_;
            _vala_ccode_node_unref0 (_tmp58_);
            get_qdata = _tmp60_;
            _tmp61_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, type_arg, FALSE);
            _tmp62_ = _tmp61_;
            vala_ccode_function_call_add_argument (get_qdata, _tmp62_);
            _vala_ccode_node_unref0 (_tmp62_);
            vala_ccode_function_call_add_argument (get_qdata, (ValaCCodeExpression*) quark);
            _tmp63_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) get_qdata, "GType (*) (void)");
            _tmp64_ = _tmp63_;
            _tmp65_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp64_);
            _vala_ccode_node_unref0 (proxy_type);
            proxy_type = (ValaCCodeExpression*) _tmp65_;
            _vala_ccode_node_unref0 (_tmp64_);
            _tmp66_ = vala_ccode_identifier_new ("g_quark_from_static_string");
            _tmp67_ = _tmp66_;
            _tmp68_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp67_);
            _vala_ccode_node_unref0 (quark);
            quark = _tmp68_;
            _vala_ccode_node_unref0 (_tmp67_);
            _tmp69_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
            _tmp70_ = _tmp69_;
            vala_ccode_function_call_add_argument (quark, (ValaCCodeExpression*) _tmp70_);
            _vala_ccode_node_unref0 (_tmp70_);
            _tmp71_ = vala_ccode_identifier_new ("g_type_get_qdata");
            _tmp72_ = _tmp71_;
            _tmp73_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp72_);
            _vala_ccode_node_unref0 (get_qdata);
            get_qdata = _tmp73_;
            _vala_ccode_node_unref0 (_tmp72_);
            _tmp74_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, type_arg, FALSE);
            _tmp75_ = _tmp74_;
            vala_ccode_function_call_add_argument (get_qdata, _tmp75_);
            _vala_ccode_node_unref0 (_tmp75_);
            vala_ccode_function_call_add_argument (get_qdata, (ValaCCodeExpression*) quark);
            _tmp76_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) get_qdata);
            _vala_ccode_node_unref0 (dbus_iface_name);
            dbus_iface_name = _tmp76_;
            _vala_ccode_node_unref0 (get_qdata);
            _vala_ccode_node_unref0 (quark);
      }
      base_arg_index = 0;
      if (bus_get_proxy_async) {
            _tmp77_ = TRUE;
      } else {
            _tmp77_ = bus_get_proxy_sync;
      }
      if (_tmp77_) {
            base_arg_index = 1;
      }
      _tmp78_ = vala_method_call_get_argument_list (expr);
      args = _tmp78_;
      _tmp79_ = vala_list_get (args, base_arg_index + 0);
      name = (ValaExpression*) _tmp79_;
      _tmp80_ = vala_list_get (args, base_arg_index + 1);
      object_path = (ValaExpression*) _tmp80_;
      _tmp81_ = vala_list_get (args, base_arg_index + 2);
      flags = (ValaExpression*) _tmp81_;
      _tmp82_ = vala_list_get (args, base_arg_index + 3);
      cancellable = (ValaExpression*) _tmp82_;
      vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
      if (bus_get_proxy_async) {
            _tmp83_ = TRUE;
      } else {
            _tmp83_ = conn_get_proxy_async;
      }
      if (_tmp83_) {
            ValaCCodeIdentifier* _tmp84_ = NULL;
            ValaCCodeIdentifier* _tmp85_;
            ValaCCodeFunctionCall* _tmp86_ = NULL;
            _tmp84_ = vala_ccode_identifier_new ("g_async_initable_new_async");
            _tmp85_ = _tmp84_;
            _tmp86_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp85_);
            _vala_ccode_node_unref0 (ccall);
            ccall = _tmp86_;
            _vala_ccode_node_unref0 (_tmp85_);
      } else {
            ValaCCodeIdentifier* _tmp87_ = NULL;
            ValaCCodeIdentifier* _tmp88_;
            ValaCCodeFunctionCall* _tmp89_ = NULL;
            _tmp87_ = vala_ccode_identifier_new ("g_initable_new");
            _tmp88_ = _tmp87_;
            _tmp89_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp88_);
            _vala_ccode_node_unref0 (ccall);
            ccall = _tmp89_;
            _vala_ccode_node_unref0 (_tmp88_);
      }
      vala_ccode_function_call_add_argument (ccall, proxy_type);
      if (bus_get_proxy_async) {
            _tmp90_ = TRUE;
      } else {
            _tmp90_ = conn_get_proxy_async;
      }
      if (_tmp90_) {
            ValaCCodeConstant* _tmp91_ = NULL;
            ValaCCodeConstant* _tmp92_;
            _tmp91_ = vala_ccode_constant_new ("0");
            _tmp92_ = _tmp91_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp92_);
            _vala_ccode_node_unref0 (_tmp92_);
      }
      _tmp93_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, cancellable);
      _tmp94_ = _tmp93_;
      vala_ccode_function_call_add_argument (ccall, _tmp94_);
      _vala_ccode_node_unref0 (_tmp94_);
      if (bus_get_proxy_async) {
            _tmp95_ = TRUE;
      } else {
            _tmp95_ = conn_get_proxy_async;
      }
      if (_tmp95_) {
            gboolean _tmp96_;
            _tmp96_ = vala_method_call_get_is_yield_expression (expr);
            if (_tmp96_) {
                  ValaMethod* _tmp97_ = NULL;
                  gchar* _tmp98_ = NULL;
                  gchar* _tmp99_;
                  ValaCCodeIdentifier* _tmp100_ = NULL;
                  ValaCCodeIdentifier* _tmp101_;
                  ValaCCodeIdentifier* _tmp102_ = NULL;
                  ValaCCodeIdentifier* _tmp103_;
                  _tmp97_ = vala_ccode_base_module_get_current_method ((ValaCCodeBaseModule*) self);
                  _tmp98_ = vala_ccode_base_module_generate_ready_function ((ValaCCodeBaseModule*) self, _tmp97_);
                  _tmp99_ = _tmp98_;
                  _tmp100_ = vala_ccode_identifier_new (_tmp99_);
                  _tmp101_ = _tmp100_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp101_);
                  _vala_ccode_node_unref0 (_tmp101_);
                  _g_free0 (_tmp99_);
                  _tmp102_ = vala_ccode_identifier_new ("data");
                  _tmp103_ = _tmp102_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp103_);
                  _vala_ccode_node_unref0 (_tmp103_);
            } else {
                  gpointer _tmp104_ = NULL;
                  ValaExpression* callback;
                  ValaCCodeExpression* _tmp105_ = NULL;
                  ValaCCodeExpression* _tmp106_;
                  ValaCCodeExpression* _tmp107_ = NULL;
                  ValaCCodeExpression* _tmp108_;
                  _tmp104_ = vala_list_get (args, base_arg_index + 4);
                  callback = (ValaExpression*) _tmp104_;
                  _tmp105_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, callback);
                  _tmp106_ = _tmp105_;
                  vala_ccode_function_call_add_argument (ccall, _tmp106_);
                  _vala_ccode_node_unref0 (_tmp106_);
                  _tmp107_ = vala_ccode_base_module_get_delegate_target ((ValaCCodeBaseModule*) self, callback);
                  _tmp108_ = _tmp107_;
                  vala_ccode_function_call_add_argument (ccall, _tmp108_);
                  _vala_ccode_node_unref0 (_tmp108_);
                  _vala_code_node_unref0 (callback);
            }
      } else {
            ValaCCodeExpression* _tmp109_ = NULL;
            ValaCCodeExpression* _tmp110_;
            ValaCCodeUnaryExpression* _tmp111_ = NULL;
            ValaCCodeUnaryExpression* _tmp112_;
            _tmp109_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
            _tmp110_ = _tmp109_;
            _tmp111_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp110_);
            _tmp112_ = _tmp111_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp112_);
            _vala_ccode_node_unref0 (_tmp112_);
            _vala_ccode_node_unref0 (_tmp110_);
      }
      _tmp113_ = vala_ccode_constant_new ("\"g-flags\"");
      _tmp114_ = _tmp113_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp114_);
      _vala_ccode_node_unref0 (_tmp114_);
      _tmp115_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, flags);
      _tmp116_ = _tmp115_;
      vala_ccode_function_call_add_argument (ccall, _tmp116_);
      _vala_ccode_node_unref0 (_tmp116_);
      _tmp117_ = vala_ccode_constant_new ("\"g-name\"");
      _tmp118_ = _tmp117_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp118_);
      _vala_ccode_node_unref0 (_tmp118_);
      _tmp119_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, name);
      _tmp120_ = _tmp119_;
      vala_ccode_function_call_add_argument (ccall, _tmp120_);
      _vala_ccode_node_unref0 (_tmp120_);
      if (bus_get_proxy_async) {
            _tmp121_ = TRUE;
      } else {
            _tmp121_ = bus_get_proxy_sync;
      }
      if (_tmp121_) {
            gpointer _tmp122_ = NULL;
            ValaExpression* bus_type;
            ValaCCodeConstant* _tmp123_ = NULL;
            ValaCCodeConstant* _tmp124_;
            ValaCCodeExpression* _tmp125_ = NULL;
            ValaCCodeExpression* _tmp126_;
            _tmp122_ = vala_list_get (args, 0);
            bus_type = (ValaExpression*) _tmp122_;
            _tmp123_ = vala_ccode_constant_new ("\"g-bus-type\"");
            _tmp124_ = _tmp123_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp124_);
            _vala_ccode_node_unref0 (_tmp124_);
            _tmp125_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, bus_type);
            _tmp126_ = _tmp125_;
            vala_ccode_function_call_add_argument (ccall, _tmp126_);
            _vala_ccode_node_unref0 (_tmp126_);
            _vala_code_node_unref0 (bus_type);
      } else {
            ValaExpression* _tmp127_ = NULL;
            ValaExpression* _tmp128_;
            ValaExpression* connection;
            gboolean _tmp129_ = FALSE;
            const gchar* _tmp130_ = NULL;
            ValaCCodeConstant* _tmp138_ = NULL;
            ValaCCodeConstant* _tmp139_;
            ValaCCodeExpression* _tmp140_ = NULL;
            ValaCCodeExpression* _tmp141_;
            _tmp127_ = vala_member_access_get_inner (ma);
            _tmp128_ = _vala_code_node_ref0 (_tmp127_);
            connection = _tmp128_;
            _tmp130_ = vala_member_access_get_member_name (ma);
            if (g_strcmp0 (_tmp130_, "begin") == 0) {
                  ValaExpression* _tmp131_ = NULL;
                  ValaSymbol* _tmp132_ = NULL;
                  ValaSymbol* _tmp133_ = NULL;
                  _tmp131_ = vala_member_access_get_inner (ma);
                  _tmp132_ = vala_expression_get_symbol_reference (_tmp131_);
                  _tmp133_ = vala_expression_get_symbol_reference ((ValaExpression*) ma);
                  _tmp129_ = _tmp132_ == _tmp133_;
            } else {
                  _tmp129_ = FALSE;
            }
            if (_tmp129_) {
                  ValaExpression* _tmp134_ = NULL;
                  ValaMemberAccess* _tmp135_;
                  ValaMemberAccess* inner_ma;
                  ValaExpression* _tmp136_ = NULL;
                  ValaExpression* _tmp137_;
                  _tmp134_ = vala_member_access_get_inner (ma);
                  _tmp135_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp134_));
                  inner_ma = _tmp135_;
                  _tmp136_ = vala_member_access_get_inner (inner_ma);
                  _tmp137_ = _vala_code_node_ref0 (_tmp136_);
                  _vala_code_node_unref0 (connection);
                  connection = _tmp137_;
                  _vala_code_node_unref0 (inner_ma);
            }
            _tmp138_ = vala_ccode_constant_new ("\"g-connection\"");
            _tmp139_ = _tmp138_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp139_);
            _vala_ccode_node_unref0 (_tmp139_);
            _tmp140_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, connection);
            _tmp141_ = _tmp140_;
            vala_ccode_function_call_add_argument (ccall, _tmp141_);
            _vala_ccode_node_unref0 (_tmp141_);
            _vala_code_node_unref0 (connection);
      }
      _tmp142_ = vala_ccode_constant_new ("\"g-object-path\"");
      _tmp143_ = _tmp142_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp143_);
      _vala_ccode_node_unref0 (_tmp143_);
      _tmp144_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, object_path);
      _tmp145_ = _tmp144_;
      vala_ccode_function_call_add_argument (ccall, _tmp145_);
      _vala_ccode_node_unref0 (_tmp145_);
      _tmp146_ = vala_ccode_constant_new ("\"g-interface-name\"");
      _tmp147_ = _tmp146_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp147_);
      _vala_ccode_node_unref0 (_tmp147_);
      vala_ccode_function_call_add_argument (ccall, dbus_iface_name);
      _tmp148_ = vala_ccode_constant_new ("NULL");
      _tmp149_ = _tmp148_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp149_);
      _vala_ccode_node_unref0 (_tmp149_);
      if (bus_get_proxy_async) {
            _tmp150_ = TRUE;
      } else {
            _tmp150_ = conn_get_proxy_async;
      }
      if (_tmp150_) {
            gboolean _tmp151_;
            _tmp151_ = vala_method_call_get_is_yield_expression (expr);
            if (_tmp151_) {
                  gint _tmp152_;
                  gint state;
                  ValaCCodeFunction* _tmp153_ = NULL;
                  ValaCCodeIdentifier* _tmp154_ = NULL;
                  ValaCCodeIdentifier* _tmp155_;
                  ValaCCodeMemberAccess* _tmp156_ = NULL;
                  ValaCCodeMemberAccess* _tmp157_;
                  gchar* _tmp158_ = NULL;
                  gchar* _tmp159_;
                  ValaCCodeConstant* _tmp160_ = NULL;
                  ValaCCodeConstant* _tmp161_;
                  ValaCCodeFunction* _tmp162_ = NULL;
                  ValaCCodeFunction* _tmp163_ = NULL;
                  ValaCCodeConstant* _tmp164_ = NULL;
                  ValaCCodeConstant* _tmp165_;
                  ValaCCodeFunction* _tmp166_ = NULL;
                  gchar* _tmp167_ = NULL;
                  gchar* _tmp168_;
                  ValaCCodeIdentifier* _tmp169_ = NULL;
                  ValaCCodeIdentifier* _tmp170_;
                  ValaCCodeFunctionCall* _tmp171_ = NULL;
                  ValaCCodeIdentifier* _tmp172_ = NULL;
                  ValaCCodeIdentifier* _tmp173_;
                  ValaCCodeMemberAccess* _tmp174_ = NULL;
                  ValaCCodeMemberAccess* _tmp175_;
                  ValaCCodeIdentifier* _tmp176_ = NULL;
                  ValaCCodeIdentifier* _tmp177_;
                  ValaCCodeMemberAccess* _tmp178_ = NULL;
                  ValaCCodeMemberAccess* _tmp179_;
                  ValaCCodeExpression* _tmp180_ = NULL;
                  ValaCCodeExpression* _tmp181_;
                  ValaCCodeUnaryExpression* _tmp182_ = NULL;
                  ValaCCodeUnaryExpression* _tmp183_;
                  _tmp152_ = ((ValaCCodeBaseModule*) self)->next_coroutine_state;
                  ((ValaCCodeBaseModule*) self)->next_coroutine_state = _tmp152_ + 1;
                  state = _tmp152_;
                  _tmp153_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp154_ = vala_ccode_identifier_new ("data");
                  _tmp155_ = _tmp154_;
                  _tmp156_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp155_, "_state_");
                  _tmp157_ = _tmp156_;
                  _tmp158_ = g_strdup_printf ("%i", state);
                  _tmp159_ = _tmp158_;
                  _tmp160_ = vala_ccode_constant_new (_tmp159_);
                  _tmp161_ = _tmp160_;
                  vala_ccode_function_add_assignment (_tmp153_, (ValaCCodeExpression*) _tmp157_, (ValaCCodeExpression*) _tmp161_);
                  _vala_ccode_node_unref0 (_tmp161_);
                  _g_free0 (_tmp159_);
                  _vala_ccode_node_unref0 (_tmp157_);
                  _vala_ccode_node_unref0 (_tmp155_);
                  _tmp162_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  vala_ccode_function_add_expression (_tmp162_, (ValaCCodeExpression*) ccall);
                  _tmp163_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp164_ = vala_ccode_constant_new ("FALSE");
                  _tmp165_ = _tmp164_;
                  vala_ccode_function_add_return (_tmp163_, (ValaCCodeExpression*) _tmp165_);
                  _vala_ccode_node_unref0 (_tmp165_);
                  _tmp166_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp167_ = g_strdup_printf ("_state_%d", state);
                  _tmp168_ = _tmp167_;
                  vala_ccode_function_add_label (_tmp166_, _tmp168_);
                  _g_free0 (_tmp168_);
                  _tmp169_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
                  _tmp170_ = _tmp169_;
                  _tmp171_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp170_);
                  _vala_ccode_node_unref0 (ccall);
                  ccall = _tmp171_;
                  _vala_ccode_node_unref0 (_tmp170_);
                  _tmp172_ = vala_ccode_identifier_new ("data");
                  _tmp173_ = _tmp172_;
                  _tmp174_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp173_, "_source_object_");
                  _tmp175_ = _tmp174_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp175_);
                  _vala_ccode_node_unref0 (_tmp175_);
                  _vala_ccode_node_unref0 (_tmp173_);
                  _tmp176_ = vala_ccode_identifier_new ("data");
                  _tmp177_ = _tmp176_;
                  _tmp178_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp177_, "_res_");
                  _tmp179_ = _tmp178_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp179_);
                  _vala_ccode_node_unref0 (_tmp179_);
                  _vala_ccode_node_unref0 (_tmp177_);
                  _tmp180_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
                  _tmp181_ = _tmp180_;
                  _tmp182_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp181_);
                  _tmp183_ = _tmp182_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp183_);
                  _vala_ccode_node_unref0 (_tmp183_);
                  _vala_ccode_node_unref0 (_tmp181_);
            } else {
                  ValaCCodeFunction* _tmp184_ = NULL;
                  _tmp184_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  vala_ccode_function_add_expression (_tmp184_, (ValaCCodeExpression*) ccall);
                  _vala_ccode_node_unref0 (ccall);
                  _vala_code_node_unref0 (cancellable);
                  _vala_code_node_unref0 (flags);
                  _vala_code_node_unref0 (object_path);
                  _vala_code_node_unref0 (name);
                  _vala_iterable_unref0 (args);
                  _vala_code_node_unref0 (object_type);
                  _vala_ccode_node_unref0 (dbus_iface_name);
                  _vala_ccode_node_unref0 (proxy_type);
                  _vala_code_node_unref0 (type_arg);
                  _vala_code_node_unref0 (ma);
                  _vala_code_node_unref0 (mtype);
                  return;
            }
      }
      _tmp185_ = vala_expression_get_value_type ((ValaExpression*) expr);
      _tmp186_ = vala_expression_get_value_type ((ValaExpression*) expr);
      _tmp187_ = vala_data_type_get_value_owned (_tmp186_);
      _tmp188_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp185_, _tmp187_, NULL, TRUE);
      temp_var = _tmp188_;
      _tmp189_ = vala_symbol_get_name ((ValaSymbol*) temp_var);
      _tmp190_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp189_);
      temp_ref = _tmp190_;
      vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, temp_var, FALSE);
      _tmp191_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_assignment (_tmp191_, temp_ref, (ValaCCodeExpression*) ccall);
      vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) expr, temp_ref);
      _vala_ccode_node_unref0 (temp_ref);
      _vala_code_node_unref0 (temp_var);
      _vala_ccode_node_unref0 (ccall);
      _vala_code_node_unref0 (cancellable);
      _vala_code_node_unref0 (flags);
      _vala_code_node_unref0 (object_path);
      _vala_code_node_unref0 (name);
      _vala_iterable_unref0 (args);
      _vala_code_node_unref0 (object_type);
      _vala_ccode_node_unref0 (dbus_iface_name);
      _vala_ccode_node_unref0 (proxy_type);
      _vala_code_node_unref0 (type_arg);
      _vala_code_node_unref0 (ma);
      _vala_code_node_unref0 (mtype);
}


static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_ = NULL;
      gchar* _tmp3_;
      gchar* _tmp4_ = NULL;
      gchar* _tmp5_;
      gchar* wrapper_name;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      gchar* _tmp9_;
      gchar* _tmp10_;
      ValaCCodeParameter* _tmp11_ = NULL;
      ValaCCodeParameter* _tmp12_;
      ValaCCodeParameter* _tmp13_ = NULL;
      ValaCCodeParameter* _tmp14_;
      ValaCCodeFunction* _tmp15_ = NULL;
      ValaCCodeVariableDeclarator* _tmp16_ = NULL;
      ValaCCodeVariableDeclarator* _tmp17_;
      ValaCCodeIdentifier* _tmp18_ = NULL;
      ValaCCodeIdentifier* _tmp19_;
      ValaCCodeFunctionCall* _tmp20_ = NULL;
      ValaCCodeFunctionCall* _tmp21_;
      ValaCCodeFunctionCall* iter_init;
      ValaCCodeIdentifier* _tmp22_ = NULL;
      ValaCCodeIdentifier* _tmp23_;
      ValaCCodeUnaryExpression* _tmp24_ = NULL;
      ValaCCodeUnaryExpression* _tmp25_;
      ValaCCodeIdentifier* _tmp26_ = NULL;
      ValaCCodeIdentifier* _tmp27_;
      ValaCCodeFunction* _tmp28_ = NULL;
      ValaCCodeIdentifier* _tmp29_ = NULL;
      ValaCCodeIdentifier* _tmp30_;
      ValaCCodeFunctionCall* _tmp31_ = NULL;
      ValaCCodeFunctionCall* _tmp32_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp33_ = NULL;
      ValaCCodeIdentifier* _tmp34_;
      ValaCCodeConstant* _tmp35_ = NULL;
      ValaCCodeConstant* _tmp36_;
      ValaCCodeFunction* _tmp82_ = NULL;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (sig != NULL, NULL);
      g_return_val_if_fail (sym != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_signal_get_cname (sig);
      _tmp3_ = _tmp2_;
      _tmp4_ = g_strdup_printf ("_dbus_handle_%s_%s", _tmp1_, _tmp3_);
      _tmp5_ = _tmp4_;
      _g_free0 (_tmp3_);
      _g_free0 (_tmp1_);
      wrapper_name = _tmp5_;
      _tmp6_ = vala_ccode_function_new (wrapper_name, "void");
      function = _tmp6_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp7_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
      _tmp8_ = _tmp7_;
      _tmp9_ = g_strconcat (_tmp8_, "*", NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_parameter_new ("self", _tmp10_);
      _tmp12_ = _tmp11_;
      vala_ccode_function_add_parameter (function, _tmp12_);
      _vala_ccode_node_unref0 (_tmp12_);
      _g_free0 (_tmp10_);
      _g_free0 (_tmp8_);
      _tmp13_ = vala_ccode_parameter_new ("parameters", "GVariant*");
      _tmp14_ = _tmp13_;
      vala_ccode_function_add_parameter (function, _tmp14_);
      _vala_ccode_node_unref0 (_tmp14_);
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
      _tmp15_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp16_ = vala_ccode_variable_declarator_new ("_arguments_iter", NULL, NULL);
      _tmp17_ = _tmp16_;
      vala_ccode_function_add_declaration (_tmp15_, "GVariantIter", (ValaCCodeDeclarator*) _tmp17_, 0);
      _vala_ccode_node_unref0 (_tmp17_);
      _tmp18_ = vala_ccode_identifier_new ("g_variant_iter_init");
      _tmp19_ = _tmp18_;
      _tmp20_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp19_);
      _tmp21_ = _tmp20_;
      _vala_ccode_node_unref0 (_tmp19_);
      iter_init = _tmp21_;
      _tmp22_ = vala_ccode_identifier_new ("_arguments_iter");
      _tmp23_ = _tmp22_;
      _tmp24_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp23_);
      _tmp25_ = _tmp24_;
      vala_ccode_function_call_add_argument (iter_init, (ValaCCodeExpression*) _tmp25_);
      _vala_ccode_node_unref0 (_tmp25_);
      _vala_ccode_node_unref0 (_tmp23_);
      _tmp26_ = vala_ccode_identifier_new ("parameters");
      _tmp27_ = _tmp26_;
      vala_ccode_function_call_add_argument (iter_init, (ValaCCodeExpression*) _tmp27_);
      _vala_ccode_node_unref0 (_tmp27_);
      _tmp28_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp28_, (ValaCCodeExpression*) iter_init);
      _tmp29_ = vala_ccode_identifier_new ("g_signal_emit_by_name");
      _tmp30_ = _tmp29_;
      _tmp31_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp30_);
      _tmp32_ = _tmp31_;
      _vala_ccode_node_unref0 (_tmp30_);
      ccall = _tmp32_;
      _tmp33_ = vala_ccode_identifier_new ("self");
      _tmp34_ = _tmp33_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp34_);
      _vala_ccode_node_unref0 (_tmp34_);
      _tmp35_ = vala_signal_get_canonical_cconstant (sig, NULL);
      _tmp36_ = _tmp35_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp36_);
      _vala_ccode_node_unref0 (_tmp36_);
      {
            ValaList* _tmp37_ = NULL;
            ValaList* _param_list;
            gint _tmp38_;
            gint _param_size;
            gint _param_index;
            _tmp37_ = vala_signal_get_parameters (sig);
            _param_list = _tmp37_;
            _tmp38_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp38_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp39_ = NULL;
                  ValaParameter* param;
                  const gchar* _tmp40_ = NULL;
                  gchar* _tmp41_ = NULL;
                  gchar* param_name;
                  ValaDataType* _tmp42_ = NULL;
                  ValaDataType* _tmp43_ = NULL;
                  ValaDataType* owned_type;
                  ValaCCodeFunction* _tmp44_ = NULL;
                  gchar* _tmp45_ = NULL;
                  gchar* _tmp46_;
                  ValaDataType* _tmp47_ = NULL;
                  ValaCCodeExpression* _tmp48_ = NULL;
                  ValaCCodeExpression* _tmp49_;
                  ValaCCodeVariableDeclarator* _tmp50_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp51_;
                  ValaDataType* _tmp52_ = NULL;
                  ValaTypeSymbol* _tmp53_ = NULL;
                  ValaTypeSymbol* _tmp54_;
                  ValaStruct* _tmp55_;
                  ValaStruct* st;
                  gboolean _tmp56_ = FALSE;
                  ValaDataType* _tmp64_ = NULL;
                  ValaDataType* _tmp77_ = NULL;
                  ValaCCodeIdentifier* _tmp78_ = NULL;
                  ValaCCodeIdentifier* _tmp79_;
                  ValaCCodeIdentifier* _tmp80_ = NULL;
                  ValaCCodeIdentifier* _tmp81_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp39_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp39_;
                  _tmp40_ = vala_symbol_get_name ((ValaSymbol*) param);
                  _tmp41_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp40_);
                  param_name = _tmp41_;
                  _tmp42_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp43_ = vala_data_type_copy (_tmp42_);
                  owned_type = _tmp43_;
                  vala_data_type_set_value_owned (owned_type, TRUE);
                  _tmp44_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp45_ = vala_data_type_get_cname (owned_type);
                  _tmp46_ = _tmp45_;
                  _tmp47_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp48_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp47_, TRUE);
                  _tmp49_ = _tmp48_;
                  _tmp50_ = vala_ccode_variable_declarator_new_zero (param_name, _tmp49_, NULL);
                  _tmp51_ = _tmp50_;
                  vala_ccode_function_add_declaration (_tmp44_, _tmp46_, (ValaCCodeDeclarator*) _tmp51_, 0);
                  _vala_ccode_node_unref0 (_tmp51_);
                  _vala_ccode_node_unref0 (_tmp49_);
                  _g_free0 (_tmp46_);
                  _tmp52_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp53_ = vala_data_type_get_data_type (_tmp52_);
                  _tmp54_ = _tmp53_;
                  _tmp55_ = _vala_code_node_ref0 (VALA_IS_STRUCT (_tmp54_) ? ((ValaStruct*) _tmp54_) : NULL);
                  st = _tmp55_;
                  if (st != NULL) {
                        gboolean _tmp57_;
                        _tmp57_ = vala_struct_is_simple_type (st);
                        _tmp56_ = !_tmp57_;
                  } else {
                        _tmp56_ = FALSE;
                  }
                  if (_tmp56_) {
                        ValaCCodeIdentifier* _tmp58_ = NULL;
                        ValaCCodeIdentifier* _tmp59_;
                        ValaCCodeUnaryExpression* _tmp60_ = NULL;
                        ValaCCodeUnaryExpression* _tmp61_;
                        _tmp58_ = vala_ccode_identifier_new (param_name);
                        _tmp59_ = _tmp58_;
                        _tmp60_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp59_);
                        _tmp61_ = _tmp60_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp61_);
                        _vala_ccode_node_unref0 (_tmp61_);
                        _vala_ccode_node_unref0 (_tmp59_);
                  } else {
                        ValaCCodeIdentifier* _tmp62_ = NULL;
                        ValaCCodeIdentifier* _tmp63_;
                        _tmp62_ = vala_ccode_identifier_new (param_name);
                        _tmp63_ = _tmp62_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp63_);
                        _vala_ccode_node_unref0 (_tmp63_);
                  }
                  _tmp64_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  if (VALA_IS_ARRAY_TYPE (_tmp64_)) {
                        ValaDataType* _tmp65_ = NULL;
                        ValaArrayType* _tmp66_;
                        ValaArrayType* array_type;
                        _tmp65_ = vala_variable_get_variable_type ((ValaVariable*) param);
                        _tmp66_ = _vala_code_node_ref0 (VALA_ARRAY_TYPE (_tmp65_));
                        array_type = _tmp66_;
                        {
                              gint dim;
                              dim = 1;
                              {
                                    gboolean _tmp67_;
                                    _tmp67_ = TRUE;
                                    while (TRUE) {
                                          gint _tmp68_;
                                          gchar* _tmp69_ = NULL;
                                          gchar* length_cname;
                                          ValaCCodeFunction* _tmp70_ = NULL;
                                          ValaCCodeConstant* _tmp71_ = NULL;
                                          ValaCCodeConstant* _tmp72_;
                                          ValaCCodeVariableDeclarator* _tmp73_ = NULL;
                                          ValaCCodeVariableDeclarator* _tmp74_;
                                          ValaCCodeIdentifier* _tmp75_ = NULL;
                                          ValaCCodeIdentifier* _tmp76_;
                                          if (!_tmp67_) {
                                                dim++;
                                          }
                                          _tmp67_ = FALSE;
                                          _tmp68_ = vala_array_type_get_rank (array_type);
                                          if (!(dim <= _tmp68_)) {
                                                break;
                                          }
                                          _tmp69_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, param, dim);
                                          length_cname = _tmp69_;
                                          _tmp70_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                          _tmp71_ = vala_ccode_constant_new ("0");
                                          _tmp72_ = _tmp71_;
                                          _tmp73_ = vala_ccode_variable_declarator_new (length_cname, (ValaCCodeExpression*) _tmp72_, NULL);
                                          _tmp74_ = _tmp73_;
                                          vala_ccode_function_add_declaration (_tmp70_, "int", (ValaCCodeDeclarator*) _tmp74_, 0);
                                          _vala_ccode_node_unref0 (_tmp74_);
                                          _vala_ccode_node_unref0 (_tmp72_);
                                          _tmp75_ = vala_ccode_identifier_new (length_cname);
                                          _tmp76_ = _tmp75_;
                                          vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp76_);
                                          _vala_ccode_node_unref0 (_tmp76_);
                                          _g_free0 (length_cname);
                                    }
                              }
                        }
                        _vala_code_node_unref0 (array_type);
                  }
                  _tmp77_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp78_ = vala_ccode_identifier_new ("_arguments_iter");
                  _tmp79_ = _tmp78_;
                  _tmp80_ = vala_ccode_identifier_new (param_name);
                  _tmp81_ = _tmp80_;
                  vala_gvariant_module_read_expression ((ValaGVariantModule*) self, _tmp77_, (ValaCCodeExpression*) _tmp79_, (ValaCCodeExpression*) _tmp81_, (ValaSymbol*) param, NULL, NULL);
                  _vala_ccode_node_unref0 (_tmp81_);
                  _vala_ccode_node_unref0 (_tmp79_);
                  _vala_code_node_unref0 (st);
                  _vala_code_node_unref0 (owned_type);
                  _g_free0 (param_name);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      _tmp82_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp82_, (ValaCCodeExpression*) ccall);
      {
            ValaList* _tmp83_ = NULL;
            ValaList* _param_list;
            gint _tmp84_;
            gint _param_size;
            gint _param_index;
            _tmp83_ = vala_signal_get_parameters (sig);
            _param_list = _tmp83_;
            _tmp84_ = vala_collection_get_size ((ValaCollection*) _param_list);
            _param_size = _tmp84_;
            _param_index = -1;
            while (TRUE) {
                  gpointer _tmp85_ = NULL;
                  ValaParameter* param;
                  ValaDataType* _tmp86_ = NULL;
                  ValaDataType* _tmp87_ = NULL;
                  ValaDataType* owned_type;
                  gboolean _tmp88_;
                  _param_index = _param_index + 1;
                  if (!(_param_index < _param_size)) {
                        break;
                  }
                  _tmp85_ = vala_list_get (_param_list, _param_index);
                  param = (ValaParameter*) _tmp85_;
                  _tmp86_ = vala_variable_get_variable_type ((ValaVariable*) param);
                  _tmp87_ = vala_data_type_copy (_tmp86_);
                  owned_type = _tmp87_;
                  vala_data_type_set_value_owned (owned_type, TRUE);
                  _tmp88_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, owned_type);
                  if (_tmp88_) {
                        const gchar* _tmp89_ = NULL;
                        ValaLocalVariable* _tmp90_ = NULL;
                        ValaLocalVariable* local;
                        ValaCCodeFunction* _tmp91_ = NULL;
                        ValaCCodeExpression* _tmp92_ = NULL;
                        ValaCCodeExpression* _tmp93_;
                        _tmp89_ = vala_symbol_get_name ((ValaSymbol*) param);
                        _tmp90_ = vala_local_variable_new (owned_type, _tmp89_, NULL, NULL);
                        local = _tmp90_;
                        _tmp91_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                        _tmp92_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, local);
                        _tmp93_ = _tmp92_;
                        vala_ccode_function_add_expression (_tmp91_, _tmp93_);
                        _vala_ccode_node_unref0 (_tmp93_);
                        _vala_code_node_unref0 (local);
                  }
                  _vala_code_node_unref0 (owned_type);
                  _vala_code_node_unref0 (param);
            }
            _vala_iterable_unref0 (_param_list);
      }
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = wrapper_name;
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (iter_init);
      _vala_ccode_node_unref0 (function);
      return result;
}


static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self, ValaObjectTypeSymbol* sym) {
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      gchar* _tmp2_;
      gchar* _tmp3_;
      ValaCCodeFunction* _tmp4_ = NULL;
      ValaCCodeFunction* _tmp5_;
      ValaCCodeFunction* cfunc;
      ValaCCodeParameter* _tmp6_ = NULL;
      ValaCCodeParameter* _tmp7_;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      ValaCCodeParameter* _tmp10_ = NULL;
      ValaCCodeParameter* _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      ValaCCodeModifiers _tmp14_;
      ValaCCodeBlock* _tmp15_ = NULL;
      ValaCCodeBlock* block;
      ValaCCodeIfStatement* clastif;
      g_return_if_fail (self != NULL);
      g_return_if_fail (sym != NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp1_ = _tmp0_;
      _tmp2_ = g_strconcat (_tmp1_, "proxy_g_signal", NULL);
      _tmp3_ = _tmp2_;
      _tmp4_ = vala_ccode_function_new (_tmp3_, "void");
      _tmp5_ = _tmp4_;
      _g_free0 (_tmp3_);
      _g_free0 (_tmp1_);
      cfunc = _tmp5_;
      _tmp6_ = vala_ccode_parameter_new ("proxy", "GDBusProxy*");
      _tmp7_ = _tmp6_;
      vala_ccode_function_add_parameter (cfunc, _tmp7_);
      _vala_ccode_node_unref0 (_tmp7_);
      _tmp8_ = vala_ccode_parameter_new ("sender_name", "const gchar*");
      _tmp9_ = _tmp8_;
      vala_ccode_function_add_parameter (cfunc, _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      _tmp10_ = vala_ccode_parameter_new ("signal_name", "const gchar*");
      _tmp11_ = _tmp10_;
      vala_ccode_function_add_parameter (cfunc, _tmp11_);
      _vala_ccode_node_unref0 (_tmp11_);
      _tmp12_ = vala_ccode_parameter_new ("parameters", "GVariant*");
      _tmp13_ = _tmp12_;
      vala_ccode_function_add_parameter (cfunc, _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      _tmp14_ = vala_ccode_function_get_modifiers (cfunc);
      vala_ccode_function_set_modifiers (cfunc, _tmp14_ | VALA_CCODE_MODIFIERS_STATIC);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _tmp15_ = vala_ccode_block_new ();
      block = _tmp15_;
      vala_ccode_function_set_block (cfunc, block);
      clastif = NULL;
      {
            ValaList* _tmp16_ = NULL;
            ValaList* _sig_list;
            gint _tmp17_;
            gint _sig_size;
            gint _sig_index;
            _tmp16_ = vala_object_type_symbol_get_signals (sym);
            _sig_list = _tmp16_;
            _tmp17_ = vala_collection_get_size ((ValaCollection*) _sig_list);
            _sig_size = _tmp17_;
            _sig_index = -1;
            while (TRUE) {
                  gpointer _tmp18_ = NULL;
                  ValaSignal* sig;
                  ValaSymbolAccessibility _tmp19_;
                  ValaCCodeIdentifier* _tmp20_ = NULL;
                  ValaCCodeIdentifier* _tmp21_;
                  ValaCCodeFunctionCall* _tmp22_ = NULL;
                  ValaCCodeFunctionCall* _tmp23_;
                  ValaCCodeFunctionCall* ccheck;
                  ValaCCodeIdentifier* _tmp24_ = NULL;
                  ValaCCodeIdentifier* _tmp25_;
                  gchar* _tmp26_ = NULL;
                  gchar* _tmp27_;
                  gchar* _tmp28_ = NULL;
                  gchar* _tmp29_;
                  ValaCCodeConstant* _tmp30_ = NULL;
                  ValaCCodeConstant* _tmp31_;
                  ValaCCodeBlock* _tmp32_ = NULL;
                  ValaCCodeBlock* callblock;
                  gchar* _tmp33_ = NULL;
                  gchar* _tmp34_;
                  ValaCCodeIdentifier* _tmp35_ = NULL;
                  ValaCCodeIdentifier* _tmp36_;
                  ValaCCodeFunctionCall* _tmp37_ = NULL;
                  ValaCCodeFunctionCall* _tmp38_;
                  ValaCCodeFunctionCall* ccall;
                  ValaCCodeIdentifier* _tmp39_ = NULL;
                  ValaCCodeIdentifier* _tmp40_;
                  gchar* _tmp41_ = NULL;
                  gchar* _tmp42_;
                  gchar* _tmp43_;
                  gchar* _tmp44_;
                  ValaCCodeCastExpression* _tmp45_ = NULL;
                  ValaCCodeCastExpression* _tmp46_;
                  ValaCCodeIdentifier* _tmp47_ = NULL;
                  ValaCCodeIdentifier* _tmp48_;
                  ValaCCodeExpressionStatement* _tmp49_ = NULL;
                  ValaCCodeExpressionStatement* _tmp50_;
                  ValaCCodeConstant* _tmp51_ = NULL;
                  ValaCCodeConstant* _tmp52_;
                  ValaCCodeBinaryExpression* _tmp53_ = NULL;
                  ValaCCodeBinaryExpression* _tmp54_;
                  ValaCCodeIfStatement* _tmp55_ = NULL;
                  ValaCCodeIfStatement* _tmp56_;
                  ValaCCodeIfStatement* cif;
                  ValaCCodeIfStatement* _tmp57_;
                  _sig_index = _sig_index + 1;
                  if (!(_sig_index < _sig_size)) {
                        break;
                  }
                  _tmp18_ = vala_list_get (_sig_list, _sig_index);
                  sig = (ValaSignal*) _tmp18_;
                  _tmp19_ = vala_symbol_get_access ((ValaSymbol*) sig);
                  if (_tmp19_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
                        _vala_code_node_unref0 (sig);
                        continue;
                  }
                  vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "string.h", FALSE);
                  _tmp20_ = vala_ccode_identifier_new ("strcmp");
                  _tmp21_ = _tmp20_;
                  _tmp22_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp21_);
                  _tmp23_ = _tmp22_;
                  _vala_ccode_node_unref0 (_tmp21_);
                  ccheck = _tmp23_;
                  _tmp24_ = vala_ccode_identifier_new ("signal_name");
                  _tmp25_ = _tmp24_;
                  vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) _tmp25_);
                  _vala_ccode_node_unref0 (_tmp25_);
                  _tmp26_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) sig);
                  _tmp27_ = _tmp26_;
                  _tmp28_ = g_strdup_printf ("\"%s\"", _tmp27_);
                  _tmp29_ = _tmp28_;
                  _tmp30_ = vala_ccode_constant_new (_tmp29_);
                  _tmp31_ = _tmp30_;
                  vala_ccode_function_call_add_argument (ccheck, (ValaCCodeExpression*) _tmp31_);
                  _vala_ccode_node_unref0 (_tmp31_);
                  _g_free0 (_tmp29_);
                  _g_free0 (_tmp27_);
                  _tmp32_ = vala_ccode_block_new ();
                  callblock = _tmp32_;
                  _tmp33_ = vala_gd_bus_client_module_generate_dbus_signal_handler (self, sig, sym);
                  _tmp34_ = _tmp33_;
                  _tmp35_ = vala_ccode_identifier_new (_tmp34_);
                  _tmp36_ = _tmp35_;
                  _tmp37_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp36_);
                  _tmp38_ = _tmp37_;
                  _vala_ccode_node_unref0 (_tmp36_);
                  _g_free0 (_tmp34_);
                  ccall = _tmp38_;
                  _tmp39_ = vala_ccode_identifier_new ("proxy");
                  _tmp40_ = _tmp39_;
                  _tmp41_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) sym, FALSE);
                  _tmp42_ = _tmp41_;
                  _tmp43_ = g_strconcat (_tmp42_, "*", NULL);
                  _tmp44_ = _tmp43_;
                  _tmp45_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp40_, _tmp44_);
                  _tmp46_ = _tmp45_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp46_);
                  _vala_ccode_node_unref0 (_tmp46_);
                  _g_free0 (_tmp44_);
                  _g_free0 (_tmp42_);
                  _vala_ccode_node_unref0 (_tmp40_);
                  _tmp47_ = vala_ccode_identifier_new ("parameters");
                  _tmp48_ = _tmp47_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp48_);
                  _vala_ccode_node_unref0 (_tmp48_);
                  _tmp49_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) ccall);
                  _tmp50_ = _tmp49_;
                  vala_ccode_block_add_statement (callblock, (ValaCCodeNode*) _tmp50_);
                  _vala_ccode_node_unref0 (_tmp50_);
                  _tmp51_ = vala_ccode_constant_new ("0");
                  _tmp52_ = _tmp51_;
                  _tmp53_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) ccheck, (ValaCCodeExpression*) _tmp52_);
                  _tmp54_ = _tmp53_;
                  _tmp55_ = vala_ccode_if_statement_new ((ValaCCodeExpression*) _tmp54_, (ValaCCodeStatement*) callblock, NULL);
                  _tmp56_ = _tmp55_;
                  _vala_ccode_node_unref0 (_tmp54_);
                  _vala_ccode_node_unref0 (_tmp52_);
                  cif = _tmp56_;
                  if (clastif == NULL) {
                        vala_ccode_block_add_statement (block, (ValaCCodeNode*) cif);
                  } else {
                        vala_ccode_if_statement_set_false_statement (clastif, (ValaCCodeStatement*) cif);
                  }
                  _tmp57_ = _vala_ccode_node_ref0 (cif);
                  _vala_ccode_node_unref0 (clastif);
                  clastif = _tmp57_;
                  _vala_ccode_node_unref0 (cif);
                  _vala_ccode_node_unref0 (ccall);
                  _vala_ccode_node_unref0 (callblock);
                  _vala_ccode_node_unref0 (ccheck);
                  _vala_code_node_unref0 (sig);
            }
            _vala_iterable_unref0 (_sig_list);
      }
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, cfunc);
      _vala_ccode_node_unref0 (clastif);
      _vala_ccode_node_unref0 (block);
      _vala_ccode_node_unref0 (cfunc);
}


static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self, ValaMethod* m, ValaGDBusClientModuleCallType call_type, const gchar* iface_name, const gchar* method_name) {
      ValaCCodeIdentifier* _tmp0_ = NULL;
      ValaCCodeIdentifier* _tmp1_;
      ValaCCodeCastExpression* _tmp2_ = NULL;
      ValaCCodeCastExpression* _tmp3_;
      ValaCCodeCastExpression* gdbusproxy;
      ValaCCodeIdentifier* _tmp4_ = NULL;
      ValaCCodeIdentifier* _tmp5_;
      ValaCCodeFunctionCall* _tmp6_ = NULL;
      ValaCCodeFunctionCall* _tmp7_;
      ValaCCodeFunctionCall* connection;
      gboolean _tmp8_;
      gboolean uses_fd;
      gboolean _tmp230_ = FALSE;
      g_return_if_fail (self != NULL);
      g_return_if_fail (m != NULL);
      _tmp0_ = vala_ccode_identifier_new ("self");
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp1_, "GDBusProxy *");
      _tmp3_ = _tmp2_;
      _vala_ccode_node_unref0 (_tmp1_);
      gdbusproxy = _tmp3_;
      _tmp4_ = vala_ccode_identifier_new ("g_dbus_proxy_get_connection");
      _tmp5_ = _tmp4_;
      _tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
      _tmp7_ = _tmp6_;
      _vala_ccode_node_unref0 (_tmp5_);
      connection = _tmp7_;
      vala_ccode_function_call_add_argument (connection, (ValaCCodeExpression*) gdbusproxy);
      _tmp8_ = vala_gd_bus_module_dbus_method_uses_file_descriptor ((ValaGDBusModule*) self, m);
      uses_fd = _tmp8_;
      if (uses_fd) {
            vala_ccode_file_add_include (((ValaCCodeBaseModule*) self)->cfile, "gio/gunixfdlist.h", FALSE);
      }
      if (call_type != VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH) {
            ValaCCodeIdentifier* _tmp9_ = NULL;
            ValaCCodeIdentifier* _tmp10_;
            ValaCCodeFunctionCall* _tmp11_ = NULL;
            ValaCCodeFunctionCall* _tmp12_;
            ValaCCodeFunctionCall* destination;
            ValaCCodeIdentifier* _tmp13_ = NULL;
            ValaCCodeIdentifier* _tmp14_;
            ValaCCodeFunctionCall* _tmp15_ = NULL;
            ValaCCodeFunctionCall* _tmp16_;
            ValaCCodeFunctionCall* interface_name;
            ValaCCodeIdentifier* _tmp17_ = NULL;
            ValaCCodeIdentifier* _tmp18_;
            ValaCCodeFunctionCall* _tmp19_ = NULL;
            ValaCCodeFunctionCall* _tmp20_;
            ValaCCodeFunctionCall* object_path;
            ValaCCodeIdentifier* _tmp21_ = NULL;
            ValaCCodeIdentifier* _tmp22_;
            ValaCCodeFunctionCall* _tmp23_ = NULL;
            ValaCCodeFunctionCall* _tmp24_;
            ValaCCodeFunctionCall* timeout;
            ValaCCodeFunction* _tmp36_ = NULL;
            ValaCCodeVariableDeclarator* _tmp37_ = NULL;
            ValaCCodeVariableDeclarator* _tmp38_;
            ValaCCodeIdentifier* _tmp39_ = NULL;
            ValaCCodeIdentifier* _tmp40_;
            ValaCCodeFunctionCall* _tmp41_ = NULL;
            ValaCCodeFunctionCall* _tmp42_;
            ValaCCodeFunctionCall* ccall;
            gchar* _tmp47_ = NULL;
            gchar* _tmp48_;
            ValaCCodeConstant* _tmp49_ = NULL;
            ValaCCodeConstant* _tmp50_;
            ValaCCodeFunction* _tmp51_ = NULL;
            ValaCCodeIdentifier* _tmp52_ = NULL;
            ValaCCodeIdentifier* _tmp53_;
            ValaCCodeFunction* _tmp54_ = NULL;
            ValaCCodeVariableDeclarator* _tmp55_ = NULL;
            ValaCCodeVariableDeclarator* _tmp56_;
            ValaCCodeFunction* _tmp57_ = NULL;
            ValaCCodeVariableDeclarator* _tmp58_ = NULL;
            ValaCCodeVariableDeclarator* _tmp59_;
            ValaCCodeIdentifier* _tmp60_ = NULL;
            ValaCCodeIdentifier* _tmp61_;
            ValaCCodeFunctionCall* _tmp62_ = NULL;
            ValaCCodeFunctionCall* _tmp63_;
            ValaCCodeFunctionCall* builder_init;
            ValaCCodeIdentifier* _tmp64_ = NULL;
            ValaCCodeIdentifier* _tmp65_;
            ValaCCodeUnaryExpression* _tmp66_ = NULL;
            ValaCCodeUnaryExpression* _tmp67_;
            ValaCCodeIdentifier* _tmp68_ = NULL;
            ValaCCodeIdentifier* _tmp69_;
            ValaCCodeFunction* _tmp70_ = NULL;
            ValaCCodeConstant* _tmp81_ = NULL;
            ValaCCodeExpression* cancellable;
            ValaCCodeIdentifier* _tmp110_ = NULL;
            ValaCCodeIdentifier* _tmp111_;
            ValaCCodeFunctionCall* _tmp112_ = NULL;
            ValaCCodeFunctionCall* _tmp113_;
            ValaCCodeFunctionCall* builder_end;
            ValaCCodeIdentifier* _tmp114_ = NULL;
            ValaCCodeIdentifier* _tmp115_;
            ValaCCodeUnaryExpression* _tmp116_ = NULL;
            ValaCCodeUnaryExpression* _tmp117_;
            ValaCCodeFunction* _tmp118_ = NULL;
            ValaCCodeIdentifier* _tmp119_ = NULL;
            ValaCCodeIdentifier* _tmp120_;
            ValaCCodeIdentifier* _tmp121_ = NULL;
            ValaCCodeIdentifier* _tmp122_;
            ValaCCodeFunctionCall* _tmp123_ = NULL;
            ValaCCodeFunctionCall* _tmp124_;
            ValaCCodeFunctionCall* set_body;
            ValaCCodeIdentifier* _tmp125_ = NULL;
            ValaCCodeIdentifier* _tmp126_;
            ValaCCodeIdentifier* _tmp127_ = NULL;
            ValaCCodeIdentifier* _tmp128_;
            ValaCCodeFunction* _tmp129_ = NULL;
            ValaCCodeIdentifier* _tmp207_ = NULL;
            ValaCCodeIdentifier* _tmp208_;
            ValaCCodeFunctionCall* _tmp209_ = NULL;
            ValaCCodeIdentifier* _tmp210_ = NULL;
            ValaCCodeIdentifier* _tmp211_;
            ValaCCodeFunction* _tmp212_ = NULL;
            _tmp9_ = vala_ccode_identifier_new ("g_dbus_proxy_get_name");
            _tmp10_ = _tmp9_;
            _tmp11_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp10_);
            _tmp12_ = _tmp11_;
            _vala_ccode_node_unref0 (_tmp10_);
            destination = _tmp12_;
            vala_ccode_function_call_add_argument (destination, (ValaCCodeExpression*) gdbusproxy);
            _tmp13_ = vala_ccode_identifier_new ("g_dbus_proxy_get_interface_name");
            _tmp14_ = _tmp13_;
            _tmp15_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp14_);
            _tmp16_ = _tmp15_;
            _vala_ccode_node_unref0 (_tmp14_);
            interface_name = _tmp16_;
            vala_ccode_function_call_add_argument (interface_name, (ValaCCodeExpression*) gdbusproxy);
            _tmp17_ = vala_ccode_identifier_new ("g_dbus_proxy_get_object_path");
            _tmp18_ = _tmp17_;
            _tmp19_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp18_);
            _tmp20_ = _tmp19_;
            _vala_ccode_node_unref0 (_tmp18_);
            object_path = _tmp20_;
            vala_ccode_function_call_add_argument (object_path, (ValaCCodeExpression*) gdbusproxy);
            _tmp21_ = vala_ccode_identifier_new ("g_dbus_proxy_get_default_timeout");
            _tmp22_ = _tmp21_;
            _tmp23_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp22_);
            _tmp24_ = _tmp23_;
            _vala_ccode_node_unref0 (_tmp22_);
            timeout = _tmp24_;
            vala_ccode_function_call_add_argument (timeout, (ValaCCodeExpression*) gdbusproxy);
            {
                  ValaList* _tmp25_ = NULL;
                  ValaList* _error_type_list;
                  gint _tmp26_;
                  gint _error_type_size;
                  gint _error_type_index;
                  _tmp25_ = vala_code_node_get_error_types ((ValaCodeNode*) m);
                  _error_type_list = _tmp25_;
                  _tmp26_ = vala_collection_get_size ((ValaCollection*) _error_type_list);
                  _error_type_size = _tmp26_;
                  _error_type_index = -1;
                  while (TRUE) {
                        gpointer _tmp27_ = NULL;
                        ValaDataType* error_type;
                        ValaErrorType* _tmp28_;
                        ValaErrorType* errtype;
                        ValaErrorDomain* _tmp29_ = NULL;
                        _error_type_index = _error_type_index + 1;
                        if (!(_error_type_index < _error_type_size)) {
                              break;
                        }
                        _tmp27_ = vala_list_get (_error_type_list, _error_type_index);
                        error_type = (ValaDataType*) _tmp27_;
                        _tmp28_ = _vala_code_node_ref0 (VALA_ERROR_TYPE (error_type));
                        errtype = _tmp28_;
                        _tmp29_ = vala_error_type_get_error_domain (errtype);
                        if (_tmp29_ != NULL) {
                              ValaCCodeFunction* _tmp30_ = NULL;
                              ValaErrorDomain* _tmp31_ = NULL;
                              gchar* _tmp32_ = NULL;
                              gchar* _tmp33_;
                              ValaCCodeIdentifier* _tmp34_ = NULL;
                              ValaCCodeIdentifier* _tmp35_;
                              _tmp30_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                              _tmp31_ = vala_error_type_get_error_domain (errtype);
                              _tmp32_ = vala_typesymbol_get_upper_case_cname ((ValaTypeSymbol*) _tmp31_, NULL);
                              _tmp33_ = _tmp32_;
                              _tmp34_ = vala_ccode_identifier_new (_tmp33_);
                              _tmp35_ = _tmp34_;
                              vala_ccode_function_add_expression (_tmp30_, (ValaCCodeExpression*) _tmp35_);
                              _vala_ccode_node_unref0 (_tmp35_);
                              _g_free0 (_tmp33_);
                        }
                        _vala_code_node_unref0 (errtype);
                        _vala_code_node_unref0 (error_type);
                  }
                  _vala_iterable_unref0 (_error_type_list);
            }
            _tmp36_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp37_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
            _tmp38_ = _tmp37_;
            vala_ccode_function_add_declaration (_tmp36_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp38_, 0);
            _vala_ccode_node_unref0 (_tmp38_);
            _tmp39_ = vala_ccode_identifier_new ("g_dbus_message_new_method_call");
            _tmp40_ = _tmp39_;
            _tmp41_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp40_);
            _tmp42_ = _tmp41_;
            _vala_ccode_node_unref0 (_tmp40_);
            ccall = _tmp42_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) destination);
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) object_path);
            if (iface_name != NULL) {
                  gchar* _tmp43_ = NULL;
                  gchar* _tmp44_;
                  ValaCCodeConstant* _tmp45_ = NULL;
                  ValaCCodeConstant* _tmp46_;
                  _tmp43_ = g_strdup_printf ("\"%s\"", iface_name);
                  _tmp44_ = _tmp43_;
                  _tmp45_ = vala_ccode_constant_new (_tmp44_);
                  _tmp46_ = _tmp45_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp46_);
                  _vala_ccode_node_unref0 (_tmp46_);
                  _g_free0 (_tmp44_);
            } else {
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) interface_name);
            }
            _tmp47_ = g_strdup_printf ("\"%s\"", method_name);
            _tmp48_ = _tmp47_;
            _tmp49_ = vala_ccode_constant_new (_tmp48_);
            _tmp50_ = _tmp49_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp50_);
            _vala_ccode_node_unref0 (_tmp50_);
            _g_free0 (_tmp48_);
            _tmp51_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp52_ = vala_ccode_identifier_new ("_message");
            _tmp53_ = _tmp52_;
            vala_ccode_function_add_assignment (_tmp51_, (ValaCCodeExpression*) _tmp53_, (ValaCCodeExpression*) ccall);
            _vala_ccode_node_unref0 (_tmp53_);
            _tmp54_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp55_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
            _tmp56_ = _tmp55_;
            vala_ccode_function_add_declaration (_tmp54_, "GVariant", (ValaCCodeDeclarator*) _tmp56_, 0);
            _vala_ccode_node_unref0 (_tmp56_);
            _tmp57_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp58_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
            _tmp59_ = _tmp58_;
            vala_ccode_function_add_declaration (_tmp57_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp59_, 0);
            _vala_ccode_node_unref0 (_tmp59_);
            _tmp60_ = vala_ccode_identifier_new ("g_variant_builder_init");
            _tmp61_ = _tmp60_;
            _tmp62_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp61_);
            _tmp63_ = _tmp62_;
            _vala_ccode_node_unref0 (_tmp61_);
            builder_init = _tmp63_;
            _tmp64_ = vala_ccode_identifier_new ("_arguments_builder");
            _tmp65_ = _tmp64_;
            _tmp66_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp65_);
            _tmp67_ = _tmp66_;
            vala_ccode_function_call_add_argument (builder_init, (ValaCCodeExpression*) _tmp67_);
            _vala_ccode_node_unref0 (_tmp67_);
            _vala_ccode_node_unref0 (_tmp65_);
            _tmp68_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
            _tmp69_ = _tmp68_;
            vala_ccode_function_call_add_argument (builder_init, (ValaCCodeExpression*) _tmp69_);
            _vala_ccode_node_unref0 (_tmp69_);
            _tmp70_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_expression (_tmp70_, (ValaCCodeExpression*) builder_init);
            if (uses_fd) {
                  ValaCCodeFunction* _tmp71_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp72_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp73_;
                  ValaCCodeFunction* _tmp74_ = NULL;
                  ValaCCodeIdentifier* _tmp75_ = NULL;
                  ValaCCodeIdentifier* _tmp76_;
                  ValaCCodeIdentifier* _tmp77_ = NULL;
                  ValaCCodeIdentifier* _tmp78_;
                  ValaCCodeFunctionCall* _tmp79_ = NULL;
                  ValaCCodeFunctionCall* _tmp80_;
                  _tmp71_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp72_ = vala_ccode_variable_declarator_new ("*_fd_list", NULL, NULL);
                  _tmp73_ = _tmp72_;
                  vala_ccode_function_add_declaration (_tmp71_, "GUnixFDList", (ValaCCodeDeclarator*) _tmp73_, 0);
                  _vala_ccode_node_unref0 (_tmp73_);
                  _tmp74_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp75_ = vala_ccode_identifier_new ("_fd_list");
                  _tmp76_ = _tmp75_;
                  _tmp77_ = vala_ccode_identifier_new ("g_unix_fd_list_new");
                  _tmp78_ = _tmp77_;
                  _tmp79_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp78_);
                  _tmp80_ = _tmp79_;
                  vala_ccode_function_add_assignment (_tmp74_, (ValaCCodeExpression*) _tmp76_, (ValaCCodeExpression*) _tmp80_);
                  _vala_ccode_node_unref0 (_tmp80_);
                  _vala_ccode_node_unref0 (_tmp78_);
                  _vala_ccode_node_unref0 (_tmp76_);
            }
            _tmp81_ = vala_ccode_constant_new ("NULL");
            cancellable = (ValaCCodeExpression*) _tmp81_;
            {
                  ValaList* _tmp82_ = NULL;
                  ValaList* _param_list;
                  gint _tmp83_;
                  gint _param_size;
                  gint _param_index;
                  _tmp82_ = vala_method_get_parameters (m);
                  _param_list = _tmp82_;
                  _tmp83_ = vala_collection_get_size ((ValaCollection*) _param_list);
                  _param_size = _tmp83_;
                  _param_index = -1;
                  while (TRUE) {
                        gpointer _tmp84_ = NULL;
                        ValaParameter* param;
                        ValaParameterDirection _tmp85_;
                        _param_index = _param_index + 1;
                        if (!(_param_index < _param_size)) {
                              break;
                        }
                        _tmp84_ = vala_list_get (_param_list, _param_index);
                        param = (ValaParameter*) _tmp84_;
                        _tmp85_ = vala_parameter_get_direction (param);
                        if (_tmp85_ == VALA_PARAMETER_DIRECTION_IN) {
                              const gchar* _tmp86_ = NULL;
                              gchar* _tmp87_ = NULL;
                              gchar* _tmp88_;
                              ValaCCodeIdentifier* _tmp89_ = NULL;
                              ValaCCodeExpression* _tmp90_;
                              ValaCCodeExpression* expr;
                              ValaDataType* _tmp91_ = NULL;
                              gboolean _tmp92_;
                              gboolean _tmp94_ = FALSE;
                              ValaDataType* _tmp95_ = NULL;
                              gboolean _tmp101_ = FALSE;
                              ValaDataType* _tmp102_ = NULL;
                              ValaDataType* _tmp107_ = NULL;
                              ValaCCodeIdentifier* _tmp108_ = NULL;
                              ValaCCodeIdentifier* _tmp109_;
                              _tmp86_ = vala_symbol_get_name ((ValaSymbol*) param);
                              _tmp87_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp86_);
                              _tmp88_ = _tmp87_;
                              _tmp89_ = vala_ccode_identifier_new (_tmp88_);
                              _tmp90_ = (ValaCCodeExpression*) _tmp89_;
                              _g_free0 (_tmp88_);
                              expr = _tmp90_;
                              _tmp91_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp92_ = vala_data_type_is_real_struct_type (_tmp91_);
                              if (_tmp92_) {
                                    ValaCCodeUnaryExpression* _tmp93_ = NULL;
                                    _tmp93_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, expr);
                                    _vala_ccode_node_unref0 (expr);
                                    expr = (ValaCCodeExpression*) _tmp93_;
                              }
                              _tmp95_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              if (VALA_IS_OBJECT_TYPE (_tmp95_)) {
                                    ValaDataType* _tmp96_ = NULL;
                                    ValaTypeSymbol* _tmp97_ = NULL;
                                    gchar* _tmp98_ = NULL;
                                    gchar* _tmp99_;
                                    _tmp96_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp97_ = vala_data_type_get_data_type (_tmp96_);
                                    _tmp98_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp97_);
                                    _tmp99_ = _tmp98_;
                                    _tmp94_ = g_strcmp0 (_tmp99_, "GLib.Cancellable") == 0;
                                    _g_free0 (_tmp99_);
                              } else {
                                    _tmp94_ = FALSE;
                              }
                              if (_tmp94_) {
                                    ValaCCodeExpression* _tmp100_;
                                    _tmp100_ = _vala_ccode_node_ref0 (expr);
                                    _vala_ccode_node_unref0 (cancellable);
                                    cancellable = _tmp100_;
                                    _vala_ccode_node_unref0 (expr);
                                    _vala_code_node_unref0 (param);
                                    continue;
                              }
                              _tmp102_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              if (VALA_IS_OBJECT_TYPE (_tmp102_)) {
                                    ValaDataType* _tmp103_ = NULL;
                                    ValaTypeSymbol* _tmp104_ = NULL;
                                    gchar* _tmp105_ = NULL;
                                    gchar* _tmp106_;
                                    _tmp103_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp104_ = vala_data_type_get_data_type (_tmp103_);
                                    _tmp105_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp104_);
                                    _tmp106_ = _tmp105_;
                                    _tmp101_ = g_strcmp0 (_tmp106_, "GLib.BusName") == 0;
                                    _g_free0 (_tmp106_);
                              } else {
                                    _tmp101_ = FALSE;
                              }
                              if (_tmp101_) {
                                    _vala_ccode_node_unref0 (expr);
                                    _vala_code_node_unref0 (param);
                                    continue;
                              }
                              _tmp107_ = vala_variable_get_variable_type ((ValaVariable*) param);
                              _tmp108_ = vala_ccode_identifier_new ("_arguments_builder");
                              _tmp109_ = _tmp108_;
                              vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp107_, (ValaCCodeExpression*) _tmp109_, expr, (ValaSymbol*) param);
                              _vala_ccode_node_unref0 (_tmp109_);
                              _vala_ccode_node_unref0 (expr);
                        }
                        _vala_code_node_unref0 (param);
                  }
                  _vala_iterable_unref0 (_param_list);
            }
            _tmp110_ = vala_ccode_identifier_new ("g_variant_builder_end");
            _tmp111_ = _tmp110_;
            _tmp112_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp111_);
            _tmp113_ = _tmp112_;
            _vala_ccode_node_unref0 (_tmp111_);
            builder_end = _tmp113_;
            _tmp114_ = vala_ccode_identifier_new ("_arguments_builder");
            _tmp115_ = _tmp114_;
            _tmp116_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp115_);
            _tmp117_ = _tmp116_;
            vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp117_);
            _vala_ccode_node_unref0 (_tmp117_);
            _vala_ccode_node_unref0 (_tmp115_);
            _tmp118_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp119_ = vala_ccode_identifier_new ("_arguments");
            _tmp120_ = _tmp119_;
            vala_ccode_function_add_assignment (_tmp118_, (ValaCCodeExpression*) _tmp120_, (ValaCCodeExpression*) builder_end);
            _vala_ccode_node_unref0 (_tmp120_);
            _tmp121_ = vala_ccode_identifier_new ("g_dbus_message_set_body");
            _tmp122_ = _tmp121_;
            _tmp123_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp122_);
            _tmp124_ = _tmp123_;
            _vala_ccode_node_unref0 (_tmp122_);
            set_body = _tmp124_;
            _tmp125_ = vala_ccode_identifier_new ("_message");
            _tmp126_ = _tmp125_;
            vala_ccode_function_call_add_argument (set_body, (ValaCCodeExpression*) _tmp126_);
            _vala_ccode_node_unref0 (_tmp126_);
            _tmp127_ = vala_ccode_identifier_new ("_arguments");
            _tmp128_ = _tmp127_;
            vala_ccode_function_call_add_argument (set_body, (ValaCCodeExpression*) _tmp128_);
            _vala_ccode_node_unref0 (_tmp128_);
            _tmp129_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_expression (_tmp129_, (ValaCCodeExpression*) set_body);
            if (uses_fd) {
                  ValaCCodeIdentifier* _tmp130_ = NULL;
                  ValaCCodeIdentifier* _tmp131_;
                  ValaCCodeFunctionCall* _tmp132_ = NULL;
                  ValaCCodeIdentifier* _tmp133_ = NULL;
                  ValaCCodeIdentifier* _tmp134_;
                  ValaCCodeIdentifier* _tmp135_ = NULL;
                  ValaCCodeIdentifier* _tmp136_;
                  ValaCCodeFunction* _tmp137_ = NULL;
                  ValaCCodeIdentifier* _tmp138_ = NULL;
                  ValaCCodeIdentifier* _tmp139_;
                  ValaCCodeFunctionCall* _tmp140_ = NULL;
                  ValaCCodeIdentifier* _tmp141_ = NULL;
                  ValaCCodeIdentifier* _tmp142_;
                  ValaCCodeFunction* _tmp143_ = NULL;
                  _tmp130_ = vala_ccode_identifier_new ("g_dbus_message_set_unix_fd_list");
                  _tmp131_ = _tmp130_;
                  _tmp132_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp131_);
                  _vala_ccode_node_unref0 (ccall);
                  ccall = _tmp132_;
                  _vala_ccode_node_unref0 (_tmp131_);
                  _tmp133_ = vala_ccode_identifier_new ("_message");
                  _tmp134_ = _tmp133_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp134_);
                  _vala_ccode_node_unref0 (_tmp134_);
                  _tmp135_ = vala_ccode_identifier_new ("_fd_list");
                  _tmp136_ = _tmp135_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp136_);
                  _vala_ccode_node_unref0 (_tmp136_);
                  _tmp137_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  vala_ccode_function_add_expression (_tmp137_, (ValaCCodeExpression*) ccall);
                  _tmp138_ = vala_ccode_identifier_new ("g_object_unref");
                  _tmp139_ = _tmp138_;
                  _tmp140_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp139_);
                  _vala_ccode_node_unref0 (ccall);
                  ccall = _tmp140_;
                  _vala_ccode_node_unref0 (_tmp139_);
                  _tmp141_ = vala_ccode_identifier_new ("_fd_list");
                  _tmp142_ = _tmp141_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp142_);
                  _vala_ccode_node_unref0 (_tmp142_);
                  _tmp143_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  vala_ccode_function_add_expression (_tmp143_, (ValaCCodeExpression*) ccall);
            }
            if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
                  ValaCCodeIdentifier* _tmp144_ = NULL;
                  ValaCCodeIdentifier* _tmp145_;
                  ValaCCodeFunctionCall* _tmp146_ = NULL;
                  ValaCCodeIdentifier* _tmp147_ = NULL;
                  ValaCCodeIdentifier* _tmp148_;
                  ValaCCodeConstant* _tmp149_ = NULL;
                  ValaCCodeConstant* _tmp150_;
                  ValaCCodeConstant* _tmp151_ = NULL;
                  ValaCCodeConstant* _tmp152_;
                  ValaCCodeIdentifier* _tmp153_ = NULL;
                  ValaCCodeIdentifier* _tmp154_;
                  ValaCCodeFunction* _tmp155_ = NULL;
                  ValaCCodeIdentifier* _tmp156_ = NULL;
                  ValaCCodeIdentifier* _tmp157_;
                  _tmp144_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_sync");
                  _tmp145_ = _tmp144_;
                  _tmp146_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp145_);
                  _vala_ccode_node_unref0 (ccall);
                  ccall = _tmp146_;
                  _vala_ccode_node_unref0 (_tmp145_);
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
                  _tmp147_ = vala_ccode_identifier_new ("_message");
                  _tmp148_ = _tmp147_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp148_);
                  _vala_ccode_node_unref0 (_tmp148_);
                  _tmp149_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
                  _tmp150_ = _tmp149_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp150_);
                  _vala_ccode_node_unref0 (_tmp150_);
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) timeout);
                  _tmp151_ = vala_ccode_constant_new ("NULL");
                  _tmp152_ = _tmp151_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp152_);
                  _vala_ccode_node_unref0 (_tmp152_);
                  vala_ccode_function_call_add_argument (ccall, cancellable);
                  _tmp153_ = vala_ccode_identifier_new ("error");
                  _tmp154_ = _tmp153_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp154_);
                  _vala_ccode_node_unref0 (_tmp154_);
                  _tmp155_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp156_ = vala_ccode_identifier_new ("_reply_message");
                  _tmp157_ = _tmp156_;
                  vala_ccode_function_add_assignment (_tmp155_, (ValaCCodeExpression*) _tmp157_, (ValaCCodeExpression*) ccall);
                  _vala_ccode_node_unref0 (_tmp157_);
            } else {
                  if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY) {
                        ValaCCodeIdentifier* _tmp158_ = NULL;
                        ValaCCodeIdentifier* _tmp159_;
                        ValaCCodeFunctionCall* _tmp160_ = NULL;
                        ValaCCodeFunctionCall* _tmp161_;
                        ValaCCodeFunctionCall* set_flags;
                        ValaCCodeIdentifier* _tmp162_ = NULL;
                        ValaCCodeIdentifier* _tmp163_;
                        ValaCCodeConstant* _tmp164_ = NULL;
                        ValaCCodeConstant* _tmp165_;
                        ValaCCodeFunction* _tmp166_ = NULL;
                        ValaCCodeIdentifier* _tmp167_ = NULL;
                        ValaCCodeIdentifier* _tmp168_;
                        ValaCCodeFunctionCall* _tmp169_ = NULL;
                        ValaCCodeIdentifier* _tmp170_ = NULL;
                        ValaCCodeIdentifier* _tmp171_;
                        ValaCCodeConstant* _tmp172_ = NULL;
                        ValaCCodeConstant* _tmp173_;
                        ValaCCodeConstant* _tmp174_ = NULL;
                        ValaCCodeConstant* _tmp175_;
                        ValaCCodeIdentifier* _tmp176_ = NULL;
                        ValaCCodeIdentifier* _tmp177_;
                        ValaCCodeFunction* _tmp178_ = NULL;
                        _tmp158_ = vala_ccode_identifier_new ("g_dbus_message_set_flags");
                        _tmp159_ = _tmp158_;
                        _tmp160_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp159_);
                        _tmp161_ = _tmp160_;
                        _vala_ccode_node_unref0 (_tmp159_);
                        set_flags = _tmp161_;
                        _tmp162_ = vala_ccode_identifier_new ("_message");
                        _tmp163_ = _tmp162_;
                        vala_ccode_function_call_add_argument (set_flags, (ValaCCodeExpression*) _tmp163_);
                        _vala_ccode_node_unref0 (_tmp163_);
                        _tmp164_ = vala_ccode_constant_new ("G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED");
                        _tmp165_ = _tmp164_;
                        vala_ccode_function_call_add_argument (set_flags, (ValaCCodeExpression*) _tmp165_);
                        _vala_ccode_node_unref0 (_tmp165_);
                        _tmp166_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                        vala_ccode_function_add_expression (_tmp166_, (ValaCCodeExpression*) set_flags);
                        _tmp167_ = vala_ccode_identifier_new ("g_dbus_connection_send_message");
                        _tmp168_ = _tmp167_;
                        _tmp169_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp168_);
                        _vala_ccode_node_unref0 (ccall);
                        ccall = _tmp169_;
                        _vala_ccode_node_unref0 (_tmp168_);
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
                        _tmp170_ = vala_ccode_identifier_new ("_message");
                        _tmp171_ = _tmp170_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp171_);
                        _vala_ccode_node_unref0 (_tmp171_);
                        _tmp172_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
                        _tmp173_ = _tmp172_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp173_);
                        _vala_ccode_node_unref0 (_tmp173_);
                        _tmp174_ = vala_ccode_constant_new ("NULL");
                        _tmp175_ = _tmp174_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp175_);
                        _vala_ccode_node_unref0 (_tmp175_);
                        _tmp176_ = vala_ccode_identifier_new ("error");
                        _tmp177_ = _tmp176_;
                        vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp177_);
                        _vala_ccode_node_unref0 (_tmp177_);
                        _tmp178_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                        vala_ccode_function_add_expression (_tmp178_, (ValaCCodeExpression*) ccall);
                        _vala_ccode_node_unref0 (set_flags);
                  } else {
                        if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC) {
                              ValaCCodeIdentifier* _tmp179_ = NULL;
                              ValaCCodeIdentifier* _tmp180_;
                              ValaCCodeFunctionCall* _tmp181_ = NULL;
                              ValaCCodeIdentifier* _tmp182_ = NULL;
                              ValaCCodeIdentifier* _tmp183_;
                              ValaCCodeConstant* _tmp184_ = NULL;
                              ValaCCodeConstant* _tmp185_;
                              ValaCCodeConstant* _tmp186_ = NULL;
                              ValaCCodeConstant* _tmp187_;
                              gchar* _tmp188_ = NULL;
                              gchar* _tmp189_;
                              ValaCCodeIdentifier* _tmp190_ = NULL;
                              ValaCCodeIdentifier* _tmp191_;
                              ValaCCodeIdentifier* _tmp192_ = NULL;
                              ValaCCodeIdentifier* _tmp193_;
                              ValaCCodeFunctionCall* _tmp194_ = NULL;
                              ValaCCodeFunctionCall* _tmp195_;
                              ValaCCodeFunctionCall* res_wrapper;
                              ValaCCodeIdentifier* _tmp196_ = NULL;
                              ValaCCodeIdentifier* _tmp197_;
                              ValaCCodeCastExpression* _tmp198_ = NULL;
                              ValaCCodeCastExpression* _tmp199_;
                              ValaCCodeIdentifier* _tmp200_ = NULL;
                              ValaCCodeIdentifier* _tmp201_;
                              ValaCCodeIdentifier* _tmp202_ = NULL;
                              ValaCCodeIdentifier* _tmp203_;
                              ValaCCodeConstant* _tmp204_ = NULL;
                              ValaCCodeConstant* _tmp205_;
                              ValaCCodeFunction* _tmp206_ = NULL;
                              _tmp179_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply");
                              _tmp180_ = _tmp179_;
                              _tmp181_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp180_);
                              _vala_ccode_node_unref0 (ccall);
                              ccall = _tmp181_;
                              _vala_ccode_node_unref0 (_tmp180_);
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
                              _tmp182_ = vala_ccode_identifier_new ("_message");
                              _tmp183_ = _tmp182_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp183_);
                              _vala_ccode_node_unref0 (_tmp183_);
                              _tmp184_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
                              _tmp185_ = _tmp184_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp185_);
                              _vala_ccode_node_unref0 (_tmp185_);
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) timeout);
                              _tmp186_ = vala_ccode_constant_new ("NULL");
                              _tmp187_ = _tmp186_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp187_);
                              _vala_ccode_node_unref0 (_tmp187_);
                              vala_ccode_function_call_add_argument (ccall, cancellable);
                              _tmp188_ = vala_gasync_module_generate_async_callback_wrapper ((ValaGAsyncModule*) self);
                              _tmp189_ = _tmp188_;
                              _tmp190_ = vala_ccode_identifier_new (_tmp189_);
                              _tmp191_ = _tmp190_;
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp191_);
                              _vala_ccode_node_unref0 (_tmp191_);
                              _g_free0 (_tmp189_);
                              _tmp192_ = vala_ccode_identifier_new ("g_simple_async_result_new");
                              _tmp193_ = _tmp192_;
                              _tmp194_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp193_);
                              _tmp195_ = _tmp194_;
                              _vala_ccode_node_unref0 (_tmp193_);
                              res_wrapper = _tmp195_;
                              _tmp196_ = vala_ccode_identifier_new ("self");
                              _tmp197_ = _tmp196_;
                              _tmp198_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp197_, "GObject *");
                              _tmp199_ = _tmp198_;
                              vala_ccode_function_call_add_argument (res_wrapper, (ValaCCodeExpression*) _tmp199_);
                              _vala_ccode_node_unref0 (_tmp199_);
                              _vala_ccode_node_unref0 (_tmp197_);
                              _tmp200_ = vala_ccode_identifier_new ("_callback_");
                              _tmp201_ = _tmp200_;
                              vala_ccode_function_call_add_argument (res_wrapper, (ValaCCodeExpression*) _tmp201_);
                              _vala_ccode_node_unref0 (_tmp201_);
                              _tmp202_ = vala_ccode_identifier_new ("_user_data_");
                              _tmp203_ = _tmp202_;
                              vala_ccode_function_call_add_argument (res_wrapper, (ValaCCodeExpression*) _tmp203_);
                              _vala_ccode_node_unref0 (_tmp203_);
                              _tmp204_ = vala_ccode_constant_new ("NULL");
                              _tmp205_ = _tmp204_;
                              vala_ccode_function_call_add_argument (res_wrapper, (ValaCCodeExpression*) _tmp205_);
                              _vala_ccode_node_unref0 (_tmp205_);
                              vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) res_wrapper);
                              _tmp206_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                              vala_ccode_function_add_expression (_tmp206_, (ValaCCodeExpression*) ccall);
                              _vala_ccode_node_unref0 (res_wrapper);
                        }
                  }
            }
            _tmp207_ = vala_ccode_identifier_new ("g_object_unref");
            _tmp208_ = _tmp207_;
            _tmp209_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp208_);
            _vala_ccode_node_unref0 (ccall);
            ccall = _tmp209_;
            _vala_ccode_node_unref0 (_tmp208_);
            _tmp210_ = vala_ccode_identifier_new ("_message");
            _tmp211_ = _tmp210_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp211_);
            _vala_ccode_node_unref0 (_tmp211_);
            _tmp212_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_expression (_tmp212_, (ValaCCodeExpression*) ccall);
            _vala_ccode_node_unref0 (set_body);
            _vala_ccode_node_unref0 (builder_end);
            _vala_ccode_node_unref0 (cancellable);
            _vala_ccode_node_unref0 (builder_init);
            _vala_ccode_node_unref0 (ccall);
            _vala_ccode_node_unref0 (timeout);
            _vala_ccode_node_unref0 (object_path);
            _vala_ccode_node_unref0 (interface_name);
            _vala_ccode_node_unref0 (destination);
      } else {
            ValaCCodeIdentifier* _tmp213_ = NULL;
            ValaCCodeIdentifier* _tmp214_;
            ValaCCodeFunctionCall* _tmp215_ = NULL;
            ValaCCodeFunctionCall* _tmp216_;
            ValaCCodeFunctionCall* ccall;
            ValaCCodeIdentifier* _tmp217_ = NULL;
            ValaCCodeIdentifier* _tmp218_;
            ValaCCodeFunctionCall* _tmp219_ = NULL;
            ValaCCodeFunctionCall* _tmp220_;
            ValaCCodeFunctionCall* inner_res;
            ValaCCodeIdentifier* _tmp221_ = NULL;
            ValaCCodeIdentifier* _tmp222_;
            ValaCCodeCastExpression* _tmp223_ = NULL;
            ValaCCodeCastExpression* _tmp224_;
            ValaCCodeConstant* _tmp225_ = NULL;
            ValaCCodeConstant* _tmp226_;
            ValaCCodeFunction* _tmp227_ = NULL;
            ValaCCodeIdentifier* _tmp228_ = NULL;
            ValaCCodeIdentifier* _tmp229_;
            _tmp213_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_finish");
            _tmp214_ = _tmp213_;
            _tmp215_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp214_);
            _tmp216_ = _tmp215_;
            _vala_ccode_node_unref0 (_tmp214_);
            ccall = _tmp216_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) connection);
            _tmp217_ = vala_ccode_identifier_new ("g_simple_async_result_get_op_res_gpointer");
            _tmp218_ = _tmp217_;
            _tmp219_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp218_);
            _tmp220_ = _tmp219_;
            _vala_ccode_node_unref0 (_tmp218_);
            inner_res = _tmp220_;
            _tmp221_ = vala_ccode_identifier_new ("_res_");
            _tmp222_ = _tmp221_;
            _tmp223_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp222_, "GSimpleAsyncResult *");
            _tmp224_ = _tmp223_;
            vala_ccode_function_call_add_argument (inner_res, (ValaCCodeExpression*) _tmp224_);
            _vala_ccode_node_unref0 (_tmp224_);
            _vala_ccode_node_unref0 (_tmp222_);
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) inner_res);
            _tmp225_ = vala_ccode_constant_new ("error");
            _tmp226_ = _tmp225_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp226_);
            _vala_ccode_node_unref0 (_tmp226_);
            _tmp227_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp228_ = vala_ccode_identifier_new ("_reply_message");
            _tmp229_ = _tmp228_;
            vala_ccode_function_add_assignment (_tmp227_, (ValaCCodeExpression*) _tmp229_, (ValaCCodeExpression*) ccall);
            _vala_ccode_node_unref0 (_tmp229_);
            _vala_ccode_node_unref0 (inner_res);
            _vala_ccode_node_unref0 (ccall);
      }
      if (call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
            _tmp230_ = TRUE;
      } else {
            _tmp230_ = call_type == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH;
      }
      if (_tmp230_) {
            ValaCCodeFunction* _tmp231_ = NULL;
            ValaCCodeVariableDeclarator* _tmp232_ = NULL;
            ValaCCodeVariableDeclarator* _tmp233_;
            ValaCCodeIdentifier* _tmp234_ = NULL;
            ValaCCodeIdentifier* _tmp235_;
            ValaCCodeFunctionCall* _tmp236_ = NULL;
            ValaCCodeFunctionCall* _tmp237_;
            ValaCCodeFunctionCall* unref_reply;
            ValaCCodeIdentifier* _tmp238_ = NULL;
            ValaCCodeIdentifier* _tmp239_;
            ValaCCodeIdentifier* _tmp240_ = NULL;
            ValaCCodeIdentifier* _tmp241_;
            ValaCCodeUnaryExpression* _tmp242_ = NULL;
            ValaCCodeUnaryExpression* _tmp243_;
            ValaCCodeUnaryExpression* reply_is_null;
            ValaCCodeFunction* _tmp244_ = NULL;
            ValaDataType* _tmp245_ = NULL;
            ValaCCodeFunction* _tmp246_ = NULL;
            ValaCCodeIdentifier* _tmp247_ = NULL;
            ValaCCodeIdentifier* _tmp248_;
            ValaCCodeFunctionCall* _tmp249_ = NULL;
            ValaCCodeFunctionCall* _tmp250_;
            ValaCCodeFunctionCall* ccall;
            ValaCCodeIdentifier* _tmp251_ = NULL;
            ValaCCodeIdentifier* _tmp252_;
            ValaCCodeIdentifier* _tmp253_ = NULL;
            ValaCCodeIdentifier* _tmp254_;
            ValaCCodeFunction* _tmp255_ = NULL;
            ValaCCodeFunction* _tmp256_ = NULL;
            ValaDataType* _tmp257_ = NULL;
            ValaCCodeFunction* _tmp258_ = NULL;
            ValaDataType* _tmp259_ = NULL;
            gboolean has_result;
            ValaCCodeFunction* _tmp433_ = NULL;
            gboolean _tmp434_ = FALSE;
            ValaDataType* _tmp435_ = NULL;
            _tmp231_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp232_ = vala_ccode_variable_declarator_new ("*_reply_message", NULL, NULL);
            _tmp233_ = _tmp232_;
            vala_ccode_function_add_declaration (_tmp231_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp233_, 0);
            _vala_ccode_node_unref0 (_tmp233_);
            _tmp234_ = vala_ccode_identifier_new ("g_object_unref");
            _tmp235_ = _tmp234_;
            _tmp236_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp235_);
            _tmp237_ = _tmp236_;
            _vala_ccode_node_unref0 (_tmp235_);
            unref_reply = _tmp237_;
            _tmp238_ = vala_ccode_identifier_new ("_reply_message");
            _tmp239_ = _tmp238_;
            vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp239_);
            _vala_ccode_node_unref0 (_tmp239_);
            _tmp240_ = vala_ccode_identifier_new ("_reply_message");
            _tmp241_ = _tmp240_;
            _tmp242_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp241_);
            _tmp243_ = _tmp242_;
            _vala_ccode_node_unref0 (_tmp241_);
            reply_is_null = _tmp243_;
            _tmp244_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_open_if (_tmp244_, (ValaCCodeExpression*) reply_is_null);
            _tmp245_ = vala_method_get_return_type (m);
            vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp245_);
            _tmp246_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_close (_tmp246_);
            _tmp247_ = vala_ccode_identifier_new ("g_dbus_message_to_gerror");
            _tmp248_ = _tmp247_;
            _tmp249_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp248_);
            _tmp250_ = _tmp249_;
            _vala_ccode_node_unref0 (_tmp248_);
            ccall = _tmp250_;
            _tmp251_ = vala_ccode_identifier_new ("_reply_message");
            _tmp252_ = _tmp251_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp252_);
            _vala_ccode_node_unref0 (_tmp252_);
            _tmp253_ = vala_ccode_identifier_new ("error");
            _tmp254_ = _tmp253_;
            vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp254_);
            _vala_ccode_node_unref0 (_tmp254_);
            _tmp255_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_open_if (_tmp255_, (ValaCCodeExpression*) ccall);
            _tmp256_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_expression (_tmp256_, (ValaCCodeExpression*) unref_reply);
            _tmp257_ = vala_method_get_return_type (m);
            vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp257_);
            _tmp258_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_close (_tmp258_);
            _tmp259_ = vala_method_get_return_type (m);
            has_result = !VALA_IS_VOID_TYPE (_tmp259_);
            if (uses_fd) {
                  ValaCCodeFunction* _tmp260_ = NULL;
                  ValaCCodeConstant* _tmp261_ = NULL;
                  ValaCCodeConstant* _tmp262_;
                  ValaCCodeVariableDeclarator* _tmp263_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp264_;
                  _tmp260_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp261_ = vala_ccode_constant_new ("0");
                  _tmp262_ = _tmp261_;
                  _tmp263_ = vala_ccode_variable_declarator_new_zero ("_fd_index", (ValaCCodeExpression*) _tmp262_, NULL);
                  _tmp264_ = _tmp263_;
                  vala_ccode_function_add_declaration (_tmp260_, "gint", (ValaCCodeDeclarator*) _tmp264_, 0);
                  _vala_ccode_node_unref0 (_tmp264_);
                  _vala_ccode_node_unref0 (_tmp262_);
            }
            {
                  ValaList* _tmp265_ = NULL;
                  ValaList* _param_list;
                  gint _tmp266_;
                  gint _param_size;
                  gint _param_index;
                  _tmp265_ = vala_method_get_parameters (m);
                  _param_list = _tmp265_;
                  _tmp266_ = vala_collection_get_size ((ValaCollection*) _param_list);
                  _param_size = _tmp266_;
                  _param_index = -1;
                  while (TRUE) {
                        gpointer _tmp267_ = NULL;
                        ValaParameter* param;
                        ValaParameterDirection _tmp268_;
                        _param_index = _param_index + 1;
                        if (!(_param_index < _param_size)) {
                              break;
                        }
                        _tmp267_ = vala_list_get (_param_list, _param_index);
                        param = (ValaParameter*) _tmp267_;
                        _tmp268_ = vala_parameter_get_direction (param);
                        if (_tmp268_ == VALA_PARAMETER_DIRECTION_OUT) {
                              has_result = TRUE;
                        }
                        _vala_code_node_unref0 (param);
                  }
                  _vala_iterable_unref0 (_param_list);
            }
            if (has_result) {
                  ValaCCodeFunction* _tmp269_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp270_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp271_;
                  ValaCCodeFunction* _tmp272_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp273_ = NULL;
                  ValaCCodeVariableDeclarator* _tmp274_;
                  ValaCCodeIdentifier* _tmp275_ = NULL;
                  ValaCCodeIdentifier* _tmp276_;
                  ValaCCodeFunctionCall* _tmp277_ = NULL;
                  ValaCCodeIdentifier* _tmp278_ = NULL;
                  ValaCCodeIdentifier* _tmp279_;
                  ValaCCodeFunction* _tmp280_ = NULL;
                  ValaCCodeIdentifier* _tmp281_ = NULL;
                  ValaCCodeIdentifier* _tmp282_;
                  ValaCCodeIdentifier* _tmp283_ = NULL;
                  ValaCCodeIdentifier* _tmp284_;
                  ValaCCodeFunctionCall* _tmp285_ = NULL;
                  ValaCCodeFunctionCall* _tmp286_;
                  ValaCCodeFunctionCall* iter_init;
                  ValaCCodeIdentifier* _tmp287_ = NULL;
                  ValaCCodeIdentifier* _tmp288_;
                  ValaCCodeUnaryExpression* _tmp289_ = NULL;
                  ValaCCodeUnaryExpression* _tmp290_;
                  ValaCCodeIdentifier* _tmp291_ = NULL;
                  ValaCCodeIdentifier* _tmp292_;
                  ValaCCodeFunction* _tmp293_ = NULL;
                  ValaDataType* _tmp368_ = NULL;
                  _tmp269_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp270_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
                  _tmp271_ = _tmp270_;
                  vala_ccode_function_add_declaration (_tmp269_, "GVariant", (ValaCCodeDeclarator*) _tmp271_, 0);
                  _vala_ccode_node_unref0 (_tmp271_);
                  _tmp272_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp273_ = vala_ccode_variable_declarator_new ("_reply_iter", NULL, NULL);
                  _tmp274_ = _tmp273_;
                  vala_ccode_function_add_declaration (_tmp272_, "GVariantIter", (ValaCCodeDeclarator*) _tmp274_, 0);
                  _vala_ccode_node_unref0 (_tmp274_);
                  _tmp275_ = vala_ccode_identifier_new ("g_dbus_message_get_body");
                  _tmp276_ = _tmp275_;
                  _tmp277_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp276_);
                  _vala_ccode_node_unref0 (ccall);
                  ccall = _tmp277_;
                  _vala_ccode_node_unref0 (_tmp276_);
                  _tmp278_ = vala_ccode_identifier_new ("_reply_message");
                  _tmp279_ = _tmp278_;
                  vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp279_);
                  _vala_ccode_node_unref0 (_tmp279_);
                  _tmp280_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp281_ = vala_ccode_identifier_new ("_reply");
                  _tmp282_ = _tmp281_;
                  vala_ccode_function_add_assignment (_tmp280_, (ValaCCodeExpression*) _tmp282_, (ValaCCodeExpression*) ccall);
                  _vala_ccode_node_unref0 (_tmp282_);
                  _tmp283_ = vala_ccode_identifier_new ("g_variant_iter_init");
                  _tmp284_ = _tmp283_;
                  _tmp285_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp284_);
                  _tmp286_ = _tmp285_;
                  _vala_ccode_node_unref0 (_tmp284_);
                  iter_init = _tmp286_;
                  _tmp287_ = vala_ccode_identifier_new ("_reply_iter");
                  _tmp288_ = _tmp287_;
                  _tmp289_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp288_);
                  _tmp290_ = _tmp289_;
                  vala_ccode_function_call_add_argument (iter_init, (ValaCCodeExpression*) _tmp290_);
                  _vala_ccode_node_unref0 (_tmp290_);
                  _vala_ccode_node_unref0 (_tmp288_);
                  _tmp291_ = vala_ccode_identifier_new ("_reply");
                  _tmp292_ = _tmp291_;
                  vala_ccode_function_call_add_argument (iter_init, (ValaCCodeExpression*) _tmp292_);
                  _vala_ccode_node_unref0 (_tmp292_);
                  _tmp293_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  vala_ccode_function_add_expression (_tmp293_, (ValaCCodeExpression*) iter_init);
                  {
                        ValaList* _tmp294_ = NULL;
                        ValaList* _param_list;
                        gint _tmp295_;
                        gint _param_size;
                        gint _param_index;
                        _tmp294_ = vala_method_get_parameters (m);
                        _param_list = _tmp294_;
                        _tmp295_ = vala_collection_get_size ((ValaCollection*) _param_list);
                        _param_size = _tmp295_;
                        _param_index = -1;
                        while (TRUE) {
                              gpointer _tmp296_ = NULL;
                              ValaParameter* param;
                              ValaParameterDirection _tmp297_;
                              _param_index = _param_index + 1;
                              if (!(_param_index < _param_size)) {
                                    break;
                              }
                              _tmp296_ = vala_list_get (_param_list, _param_index);
                              param = (ValaParameter*) _tmp296_;
                              _tmp297_ = vala_parameter_get_direction (param);
                              if (_tmp297_ == VALA_PARAMETER_DIRECTION_OUT) {
                                    ValaCCodeFunction* _tmp298_ = NULL;
                                    ValaDataType* _tmp299_ = NULL;
                                    gchar* _tmp300_ = NULL;
                                    gchar* _tmp301_;
                                    const gchar* _tmp302_ = NULL;
                                    gchar* _tmp303_;
                                    gchar* _tmp304_;
                                    ValaCCodeVariableDeclarator* _tmp305_ = NULL;
                                    ValaCCodeVariableDeclarator* _tmp306_;
                                    ValaDataType* _tmp307_ = NULL;
                                    ValaDataType* _tmp308_;
                                    ValaArrayType* _tmp309_;
                                    ValaArrayType* array_type;
                                    const gchar* _tmp320_ = NULL;
                                    gchar* _tmp321_;
                                    gchar* _tmp322_;
                                    ValaCCodeIdentifier* _tmp323_ = NULL;
                                    ValaCCodeIdentifier* _tmp324_;
                                    ValaCCodeIdentifier* target;
                                    gboolean may_fail = FALSE;
                                    ValaDataType* _tmp325_ = NULL;
                                    ValaCCodeIdentifier* _tmp326_ = NULL;
                                    ValaCCodeIdentifier* _tmp327_;
                                    ValaCCodeIdentifier* _tmp328_ = NULL;
                                    ValaCCodeIdentifier* _tmp329_;
                                    ValaCCodeIdentifier* _tmp330_ = NULL;
                                    ValaCCodeIdentifier* _tmp331_;
                                    gboolean _tmp332_;
                                    ValaCCodeFunction* _tmp333_ = NULL;
                                    const gchar* _tmp334_ = NULL;
                                    gchar* _tmp335_ = NULL;
                                    gchar* _tmp336_;
                                    ValaCCodeIdentifier* _tmp337_ = NULL;
                                    ValaCCodeIdentifier* _tmp338_;
                                    ValaCCodeUnaryExpression* _tmp339_ = NULL;
                                    ValaCCodeUnaryExpression* _tmp340_;
                                    _tmp298_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    _tmp299_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp300_ = vala_data_type_get_cname (_tmp299_);
                                    _tmp301_ = _tmp300_;
                                    _tmp302_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp303_ = g_strconcat ("_", _tmp302_, NULL);
                                    _tmp304_ = _tmp303_;
                                    _tmp305_ = vala_ccode_variable_declarator_new (_tmp304_, NULL, NULL);
                                    _tmp306_ = _tmp305_;
                                    vala_ccode_function_add_declaration (_tmp298_, _tmp301_, (ValaCCodeDeclarator*) _tmp306_, 0);
                                    _vala_ccode_node_unref0 (_tmp306_);
                                    _g_free0 (_tmp304_);
                                    _g_free0 (_tmp301_);
                                    _tmp307_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp308_ = _tmp307_;
                                    _tmp309_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp308_) ? ((ValaArrayType*) _tmp308_) : NULL);
                                    array_type = _tmp309_;
                                    if (array_type != NULL) {
                                          {
                                                gint dim;
                                                dim = 1;
                                                {
                                                      gboolean _tmp310_;
                                                      _tmp310_ = TRUE;
                                                      while (TRUE) {
                                                            gint _tmp311_;
                                                            ValaCCodeFunction* _tmp312_ = NULL;
                                                            const gchar* _tmp313_ = NULL;
                                                            gchar* _tmp314_ = NULL;
                                                            gchar* _tmp315_;
                                                            ValaCCodeConstant* _tmp316_ = NULL;
                                                            ValaCCodeConstant* _tmp317_;
                                                            ValaCCodeVariableDeclarator* _tmp318_ = NULL;
                                                            ValaCCodeVariableDeclarator* _tmp319_;
                                                            if (!_tmp310_) {
                                                                  dim++;
                                                            }
                                                            _tmp310_ = FALSE;
                                                            _tmp311_ = vala_array_type_get_rank (array_type);
                                                            if (!(dim <= _tmp311_)) {
                                                                  break;
                                                            }
                                                            _tmp312_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                                            _tmp313_ = vala_symbol_get_name ((ValaSymbol*) param);
                                                            _tmp314_ = g_strdup_printf ("_%s_length%d", _tmp313_, dim);
                                                            _tmp315_ = _tmp314_;
                                                            _tmp316_ = vala_ccode_constant_new ("0");
                                                            _tmp317_ = _tmp316_;
                                                            _tmp318_ = vala_ccode_variable_declarator_new (_tmp315_, (ValaCCodeExpression*) _tmp317_, NULL);
                                                            _tmp319_ = _tmp318_;
                                                            vala_ccode_function_add_declaration (_tmp312_, "int", (ValaCCodeDeclarator*) _tmp319_, 0);
                                                            _vala_ccode_node_unref0 (_tmp319_);
                                                            _vala_ccode_node_unref0 (_tmp317_);
                                                            _g_free0 (_tmp315_);
                                                      }
                                                }
                                          }
                                    }
                                    _tmp320_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp321_ = g_strconcat ("_", _tmp320_, NULL);
                                    _tmp322_ = _tmp321_;
                                    _tmp323_ = vala_ccode_identifier_new (_tmp322_);
                                    _tmp324_ = _tmp323_;
                                    _g_free0 (_tmp322_);
                                    target = _tmp324_;
                                    _tmp325_ = vala_variable_get_variable_type ((ValaVariable*) param);
                                    _tmp326_ = vala_ccode_identifier_new ("_reply_message");
                                    _tmp327_ = _tmp326_;
                                    _tmp328_ = vala_ccode_identifier_new ("_reply_iter");
                                    _tmp329_ = _tmp328_;
                                    _tmp330_ = vala_ccode_identifier_new ("error");
                                    _tmp331_ = _tmp330_;
                                    vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp325_, (ValaCCodeExpression*) _tmp327_, (ValaCCodeExpression*) _tmp329_, (ValaCCodeExpression*) target, (ValaSymbol*) param, (ValaCCodeExpression*) _tmp331_, &_tmp332_);
                                    may_fail = _tmp332_;
                                    _vala_ccode_node_unref0 (_tmp331_);
                                    _vala_ccode_node_unref0 (_tmp329_);
                                    _vala_ccode_node_unref0 (_tmp327_);
                                    _tmp333_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    _tmp334_ = vala_symbol_get_name ((ValaSymbol*) param);
                                    _tmp335_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp334_);
                                    _tmp336_ = _tmp335_;
                                    _tmp337_ = vala_ccode_identifier_new (_tmp336_);
                                    _tmp338_ = _tmp337_;
                                    _tmp339_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp338_);
                                    _tmp340_ = _tmp339_;
                                    vala_ccode_function_add_assignment (_tmp333_, (ValaCCodeExpression*) _tmp340_, (ValaCCodeExpression*) target);
                                    _vala_ccode_node_unref0 (_tmp340_);
                                    _vala_ccode_node_unref0 (_tmp338_);
                                    _g_free0 (_tmp336_);
                                    if (array_type != NULL) {
                                          {
                                                gint dim;
                                                dim = 1;
                                                {
                                                      gboolean _tmp341_;
                                                      _tmp341_ = TRUE;
                                                      while (TRUE) {
                                                            gint _tmp342_;
                                                            ValaCCodeFunction* _tmp343_ = NULL;
                                                            const gchar* _tmp344_ = NULL;
                                                            gchar* _tmp345_ = NULL;
                                                            gchar* _tmp346_;
                                                            ValaCCodeIdentifier* _tmp347_ = NULL;
                                                            ValaCCodeIdentifier* _tmp348_;
                                                            ValaCCodeUnaryExpression* _tmp349_ = NULL;
                                                            ValaCCodeUnaryExpression* _tmp350_;
                                                            const gchar* _tmp351_ = NULL;
                                                            gchar* _tmp352_ = NULL;
                                                            gchar* _tmp353_;
                                                            ValaCCodeIdentifier* _tmp354_ = NULL;
                                                            ValaCCodeIdentifier* _tmp355_;
                                                            if (!_tmp341_) {
                                                                  dim++;
                                                            }
                                                            _tmp341_ = FALSE;
                                                            _tmp342_ = vala_array_type_get_rank (array_type);
                                                            if (!(dim <= _tmp342_)) {
                                                                  break;
                                                            }
                                                            _tmp343_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                                            _tmp344_ = vala_symbol_get_name ((ValaSymbol*) param);
                                                            _tmp345_ = g_strdup_printf ("%s_length%d", _tmp344_, dim);
                                                            _tmp346_ = _tmp345_;
                                                            _tmp347_ = vala_ccode_identifier_new (_tmp346_);
                                                            _tmp348_ = _tmp347_;
                                                            _tmp349_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp348_);
                                                            _tmp350_ = _tmp349_;
                                                            _tmp351_ = vala_symbol_get_name ((ValaSymbol*) param);
                                                            _tmp352_ = g_strdup_printf ("_%s_length%d", _tmp351_, dim);
                                                            _tmp353_ = _tmp352_;
                                                            _tmp354_ = vala_ccode_identifier_new (_tmp353_);
                                                            _tmp355_ = _tmp354_;
                                                            vala_ccode_function_add_assignment (_tmp343_, (ValaCCodeExpression*) _tmp350_, (ValaCCodeExpression*) _tmp355_);
                                                            _vala_ccode_node_unref0 (_tmp355_);
                                                            _g_free0 (_tmp353_);
                                                            _vala_ccode_node_unref0 (_tmp350_);
                                                            _vala_ccode_node_unref0 (_tmp348_);
                                                            _g_free0 (_tmp346_);
                                                      }
                                                }
                                          }
                                    }
                                    if (may_fail) {
                                          ValaCCodeFunction* _tmp356_ = NULL;
                                          ValaCCodeIdentifier* _tmp357_ = NULL;
                                          ValaCCodeIdentifier* _tmp358_;
                                          ValaCCodeIdentifier* _tmp359_ = NULL;
                                          ValaCCodeIdentifier* _tmp360_;
                                          ValaCCodeUnaryExpression* _tmp361_ = NULL;
                                          ValaCCodeUnaryExpression* _tmp362_;
                                          ValaCCodeBinaryExpression* _tmp363_ = NULL;
                                          ValaCCodeBinaryExpression* _tmp364_;
                                          ValaCCodeFunction* _tmp365_ = NULL;
                                          ValaDataType* _tmp366_ = NULL;
                                          ValaCCodeFunction* _tmp367_ = NULL;
                                          _tmp356_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                          _tmp357_ = vala_ccode_identifier_new ("error");
                                          _tmp358_ = _tmp357_;
                                          _tmp359_ = vala_ccode_identifier_new ("error");
                                          _tmp360_ = _tmp359_;
                                          _tmp361_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp360_);
                                          _tmp362_ = _tmp361_;
                                          _tmp363_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp358_, (ValaCCodeExpression*) _tmp362_);
                                          _tmp364_ = _tmp363_;
                                          vala_ccode_function_open_if (_tmp356_, (ValaCCodeExpression*) _tmp364_);
                                          _vala_ccode_node_unref0 (_tmp364_);
                                          _vala_ccode_node_unref0 (_tmp362_);
                                          _vala_ccode_node_unref0 (_tmp360_);
                                          _vala_ccode_node_unref0 (_tmp358_);
                                          _tmp365_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                          vala_ccode_function_add_expression (_tmp365_, (ValaCCodeExpression*) unref_reply);
                                          _tmp366_ = vala_method_get_return_type (m);
                                          vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp366_);
                                          _tmp367_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                          vala_ccode_function_close (_tmp367_);
                                    }
                                    _vala_ccode_node_unref0 (target);
                                    _vala_code_node_unref0 (array_type);
                              }
                              _vala_code_node_unref0 (param);
                        }
                        _vala_iterable_unref0 (_param_list);
                  }
                  _tmp368_ = vala_method_get_return_type (m);
                  if (!VALA_IS_VOID_TYPE (_tmp368_)) {
                        ValaDataType* _tmp369_ = NULL;
                        gboolean _tmp370_;
                        _tmp369_ = vala_method_get_return_type (m);
                        _tmp370_ = vala_data_type_is_real_non_null_struct_type (_tmp369_);
                        if (_tmp370_) {
                              ValaCCodeIdentifier* _tmp371_ = NULL;
                              ValaCCodeIdentifier* _tmp372_;
                              ValaCCodeUnaryExpression* _tmp373_ = NULL;
                              ValaCCodeUnaryExpression* _tmp374_;
                              ValaCCodeUnaryExpression* target;
                              ValaDataType* _tmp375_ = NULL;
                              ValaCCodeIdentifier* _tmp376_ = NULL;
                              ValaCCodeIdentifier* _tmp377_;
                              ValaCCodeIdentifier* _tmp378_ = NULL;
                              ValaCCodeIdentifier* _tmp379_;
                              _tmp371_ = vala_ccode_identifier_new ("result");
                              _tmp372_ = _tmp371_;
                              _tmp373_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp372_);
                              _tmp374_ = _tmp373_;
                              _vala_ccode_node_unref0 (_tmp372_);
                              target = _tmp374_;
                              _tmp375_ = vala_method_get_return_type (m);
                              _tmp376_ = vala_ccode_identifier_new ("_reply_message");
                              _tmp377_ = _tmp376_;
                              _tmp378_ = vala_ccode_identifier_new ("_reply_iter");
                              _tmp379_ = _tmp378_;
                              vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp375_, (ValaCCodeExpression*) _tmp377_, (ValaCCodeExpression*) _tmp379_, (ValaCCodeExpression*) target, (ValaSymbol*) m, NULL, NULL);
                              _vala_ccode_node_unref0 (_tmp379_);
                              _vala_ccode_node_unref0 (_tmp377_);
                              _vala_ccode_node_unref0 (target);
                        } else {
                              ValaCCodeFunction* _tmp380_ = NULL;
                              ValaDataType* _tmp381_ = NULL;
                              gchar* _tmp382_ = NULL;
                              gchar* _tmp383_;
                              ValaCCodeVariableDeclarator* _tmp384_ = NULL;
                              ValaCCodeVariableDeclarator* _tmp385_;
                              ValaDataType* _tmp386_ = NULL;
                              ValaDataType* _tmp387_;
                              ValaArrayType* _tmp388_;
                              ValaArrayType* array_type;
                              gboolean may_fail = FALSE;
                              ValaDataType* _tmp398_ = NULL;
                              ValaCCodeIdentifier* _tmp399_ = NULL;
                              ValaCCodeIdentifier* _tmp400_;
                              ValaCCodeIdentifier* _tmp401_ = NULL;
                              ValaCCodeIdentifier* _tmp402_;
                              ValaCCodeIdentifier* _tmp403_ = NULL;
                              ValaCCodeIdentifier* _tmp404_;
                              ValaCCodeIdentifier* _tmp405_ = NULL;
                              ValaCCodeIdentifier* _tmp406_;
                              gboolean _tmp407_;
                              _tmp380_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                              _tmp381_ = vala_method_get_return_type (m);
                              _tmp382_ = vala_data_type_get_cname (_tmp381_);
                              _tmp383_ = _tmp382_;
                              _tmp384_ = vala_ccode_variable_declarator_new ("_result", NULL, NULL);
                              _tmp385_ = _tmp384_;
                              vala_ccode_function_add_declaration (_tmp380_, _tmp383_, (ValaCCodeDeclarator*) _tmp385_, 0);
                              _vala_ccode_node_unref0 (_tmp385_);
                              _g_free0 (_tmp383_);
                              _tmp386_ = vala_method_get_return_type (m);
                              _tmp387_ = _tmp386_;
                              _tmp388_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp387_) ? ((ValaArrayType*) _tmp387_) : NULL);
                              array_type = _tmp388_;
                              if (array_type != NULL) {
                                    {
                                          gint dim;
                                          dim = 1;
                                          {
                                                gboolean _tmp389_;
                                                _tmp389_ = TRUE;
                                                while (TRUE) {
                                                      gint _tmp390_;
                                                      ValaCCodeFunction* _tmp391_ = NULL;
                                                      gchar* _tmp392_ = NULL;
                                                      gchar* _tmp393_;
                                                      ValaCCodeConstant* _tmp394_ = NULL;
                                                      ValaCCodeConstant* _tmp395_;
                                                      ValaCCodeVariableDeclarator* _tmp396_ = NULL;
                                                      ValaCCodeVariableDeclarator* _tmp397_;
                                                      if (!_tmp389_) {
                                                            dim++;
                                                      }
                                                      _tmp389_ = FALSE;
                                                      _tmp390_ = vala_array_type_get_rank (array_type);
                                                      if (!(dim <= _tmp390_)) {
                                                            break;
                                                      }
                                                      _tmp391_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                                      _tmp392_ = g_strdup_printf ("_result_length%d", dim);
                                                      _tmp393_ = _tmp392_;
                                                      _tmp394_ = vala_ccode_constant_new ("0");
                                                      _tmp395_ = _tmp394_;
                                                      _tmp396_ = vala_ccode_variable_declarator_new (_tmp393_, (ValaCCodeExpression*) _tmp395_, NULL);
                                                      _tmp397_ = _tmp396_;
                                                      vala_ccode_function_add_declaration (_tmp391_, "int", (ValaCCodeDeclarator*) _tmp397_, 0);
                                                      _vala_ccode_node_unref0 (_tmp397_);
                                                      _vala_ccode_node_unref0 (_tmp395_);
                                                      _g_free0 (_tmp393_);
                                                }
                                          }
                                    }
                              }
                              _tmp398_ = vala_method_get_return_type (m);
                              _tmp399_ = vala_ccode_identifier_new ("_reply_message");
                              _tmp400_ = _tmp399_;
                              _tmp401_ = vala_ccode_identifier_new ("_reply_iter");
                              _tmp402_ = _tmp401_;
                              _tmp403_ = vala_ccode_identifier_new ("_result");
                              _tmp404_ = _tmp403_;
                              _tmp405_ = vala_ccode_identifier_new ("error");
                              _tmp406_ = _tmp405_;
                              vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp398_, (ValaCCodeExpression*) _tmp400_, (ValaCCodeExpression*) _tmp402_, (ValaCCodeExpression*) _tmp404_, (ValaSymbol*) m, (ValaCCodeExpression*) _tmp406_, &_tmp407_);
                              may_fail = _tmp407_;
                              _vala_ccode_node_unref0 (_tmp406_);
                              _vala_ccode_node_unref0 (_tmp404_);
                              _vala_ccode_node_unref0 (_tmp402_);
                              _vala_ccode_node_unref0 (_tmp400_);
                              if (array_type != NULL) {
                                    {
                                          gint dim;
                                          dim = 1;
                                          {
                                                gboolean _tmp408_;
                                                _tmp408_ = TRUE;
                                                while (TRUE) {
                                                      gint _tmp409_;
                                                      ValaCCodeFunction* _tmp410_ = NULL;
                                                      gchar* _tmp411_ = NULL;
                                                      gchar* _tmp412_;
                                                      ValaCCodeIdentifier* _tmp413_ = NULL;
                                                      ValaCCodeIdentifier* _tmp414_;
                                                      ValaCCodeUnaryExpression* _tmp415_ = NULL;
                                                      ValaCCodeUnaryExpression* _tmp416_;
                                                      gchar* _tmp417_ = NULL;
                                                      gchar* _tmp418_;
                                                      ValaCCodeIdentifier* _tmp419_ = NULL;
                                                      ValaCCodeIdentifier* _tmp420_;
                                                      if (!_tmp408_) {
                                                            dim++;
                                                      }
                                                      _tmp408_ = FALSE;
                                                      _tmp409_ = vala_array_type_get_rank (array_type);
                                                      if (!(dim <= _tmp409_)) {
                                                            break;
                                                      }
                                                      _tmp410_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                                      _tmp411_ = g_strdup_printf ("result_length%d", dim);
                                                      _tmp412_ = _tmp411_;
                                                      _tmp413_ = vala_ccode_identifier_new (_tmp412_);
                                                      _tmp414_ = _tmp413_;
                                                      _tmp415_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp414_);
                                                      _tmp416_ = _tmp415_;
                                                      _tmp417_ = g_strdup_printf ("_result_length%d", dim);
                                                      _tmp418_ = _tmp417_;
                                                      _tmp419_ = vala_ccode_identifier_new (_tmp418_);
                                                      _tmp420_ = _tmp419_;
                                                      vala_ccode_function_add_assignment (_tmp410_, (ValaCCodeExpression*) _tmp416_, (ValaCCodeExpression*) _tmp420_);
                                                      _vala_ccode_node_unref0 (_tmp420_);
                                                      _g_free0 (_tmp418_);
                                                      _vala_ccode_node_unref0 (_tmp416_);
                                                      _vala_ccode_node_unref0 (_tmp414_);
                                                      _g_free0 (_tmp412_);
                                                }
                                          }
                                    }
                              }
                              if (may_fail) {
                                    ValaCCodeFunction* _tmp421_ = NULL;
                                    ValaCCodeIdentifier* _tmp422_ = NULL;
                                    ValaCCodeIdentifier* _tmp423_;
                                    ValaCCodeIdentifier* _tmp424_ = NULL;
                                    ValaCCodeIdentifier* _tmp425_;
                                    ValaCCodeUnaryExpression* _tmp426_ = NULL;
                                    ValaCCodeUnaryExpression* _tmp427_;
                                    ValaCCodeBinaryExpression* _tmp428_ = NULL;
                                    ValaCCodeBinaryExpression* _tmp429_;
                                    ValaCCodeFunction* _tmp430_ = NULL;
                                    ValaDataType* _tmp431_ = NULL;
                                    ValaCCodeFunction* _tmp432_ = NULL;
                                    _tmp421_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    _tmp422_ = vala_ccode_identifier_new ("error");
                                    _tmp423_ = _tmp422_;
                                    _tmp424_ = vala_ccode_identifier_new ("error");
                                    _tmp425_ = _tmp424_;
                                    _tmp426_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp425_);
                                    _tmp427_ = _tmp426_;
                                    _tmp428_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp423_, (ValaCCodeExpression*) _tmp427_);
                                    _tmp429_ = _tmp428_;
                                    vala_ccode_function_open_if (_tmp421_, (ValaCCodeExpression*) _tmp429_);
                                    _vala_ccode_node_unref0 (_tmp429_);
                                    _vala_ccode_node_unref0 (_tmp427_);
                                    _vala_ccode_node_unref0 (_tmp425_);
                                    _vala_ccode_node_unref0 (_tmp423_);
                                    _tmp430_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    vala_ccode_function_add_expression (_tmp430_, (ValaCCodeExpression*) unref_reply);
                                    _tmp431_ = vala_method_get_return_type (m);
                                    vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp431_);
                                    _tmp432_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    vala_ccode_function_close (_tmp432_);
                              }
                              _vala_code_node_unref0 (array_type);
                        }
                  }
                  _vala_ccode_node_unref0 (iter_init);
            }
            _tmp433_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_expression (_tmp433_, (ValaCCodeExpression*) unref_reply);
            _tmp435_ = vala_method_get_return_type (m);
            if (VALA_IS_VOID_TYPE (_tmp435_)) {
                  _tmp434_ = TRUE;
            } else {
                  ValaDataType* _tmp436_ = NULL;
                  gboolean _tmp437_;
                  _tmp436_ = vala_method_get_return_type (m);
                  _tmp437_ = vala_data_type_is_real_non_null_struct_type (_tmp436_);
                  _tmp434_ = _tmp437_;
            }
            if (!_tmp434_) {
                  ValaCCodeFunction* _tmp438_ = NULL;
                  ValaCCodeIdentifier* _tmp439_ = NULL;
                  ValaCCodeIdentifier* _tmp440_;
                  _tmp438_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                  _tmp439_ = vala_ccode_identifier_new ("_result");
                  _tmp440_ = _tmp439_;
                  vala_ccode_function_add_return (_tmp438_, (ValaCCodeExpression*) _tmp440_);
                  _vala_ccode_node_unref0 (_tmp440_);
            }
            _vala_ccode_node_unref0 (ccall);
            _vala_ccode_node_unref0 (reply_is_null);
            _vala_ccode_node_unref0 (unref_reply);
      }
      _vala_ccode_node_unref0 (connection);
      _vala_ccode_node_unref0 (gdbusproxy);
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      gboolean _tmp6_;
      gboolean no_reply;
      ValaCCodeFunction* _tmp7_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp8_ = NULL;
      ValaHashMap* cparam_map;
      ValaGDBusClientModuleCallType _tmp9_ = 0;
      gchar* _tmp10_ = NULL;
      gchar* _tmp11_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sproxy_%s", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_gd_bus_module_is_dbus_no_reply (m);
      no_reply = _tmp6_;
      _tmp7_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp7_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp8_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
      cparam_map = _tmp8_;
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 3);
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
      if (no_reply) {
            _tmp9_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY;
      } else {
            _tmp9_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC;
      }
      _tmp10_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) m);
      _tmp11_ = _tmp10_;
      vala_gd_bus_client_module_generate_marshalling (self, m, _tmp9_, dbus_iface_name, _tmp11_);
      _g_free0 (_tmp11_);
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = proxy_name;
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      _g_free0 (dbus_iface_name);
      return result;
}


static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeFunction* _tmp6_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp7_ = NULL;
      ValaHashMap* cparam_map;
      gint _tmp8_;
      ValaCCodeParameter* _tmp9_ = NULL;
      ValaCCodeParameter* _tmp10_;
      gint _tmp11_;
      ValaCCodeParameter* _tmp12_ = NULL;
      ValaCCodeParameter* _tmp13_;
      gchar* _tmp14_ = NULL;
      gchar* _tmp15_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sproxy_%s_async", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp6_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp7_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
      cparam_map = _tmp7_;
      _tmp8_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, (gdouble) (-1), FALSE);
      _tmp9_ = vala_ccode_parameter_new ("_callback_", "GAsyncReadyCallback");
      _tmp10_ = _tmp9_;
      vala_map_set ((ValaMap*) cparam_map, GINT_TO_POINTER (_tmp8_), _tmp10_);
      _vala_ccode_node_unref0 (_tmp10_);
      _tmp11_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, -0.9, FALSE);
      _tmp12_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
      _tmp13_ = _tmp12_;
      vala_map_set ((ValaMap*) cparam_map, GINT_TO_POINTER (_tmp11_), _tmp13_);
      _vala_ccode_node_unref0 (_tmp13_);
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 1);
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
      _tmp14_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) m);
      _tmp15_ = _tmp14_;
      vala_gd_bus_client_module_generate_marshalling (self, m, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, dbus_iface_name, _tmp15_);
      _g_free0 (_tmp15_);
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = proxy_name;
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      _g_free0 (dbus_iface_name);
      return result;
}


static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      ValaCCodeFunction* _tmp5_ = NULL;
      ValaCCodeFunction* function;
      ValaHashMap* _tmp6_ = NULL;
      ValaHashMap* cparam_map;
      gint _tmp7_;
      ValaCCodeParameter* _tmp8_ = NULL;
      ValaCCodeParameter* _tmp9_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (m != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) m);
      _tmp3_ = g_strdup_printf ("%sproxy_%s_finish", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp5_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp6_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, vala_ccode_node_unref, g_direct_hash, g_direct_equal, g_direct_equal);
      cparam_map = _tmp6_;
      _tmp7_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, 0.1, FALSE);
      _tmp8_ = vala_ccode_parameter_new ("_res_", "GAsyncResult*");
      _tmp9_ = _tmp8_;
      vala_map_set ((ValaMap*) cparam_map, GINT_TO_POINTER (_tmp7_), _tmp9_);
      _vala_ccode_node_unref0 (_tmp9_);
      vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, m, ((ValaCCodeBaseModule*) self)->cfile, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 2);
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
      vala_gd_bus_client_module_generate_marshalling (self, m, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, NULL, NULL);
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = proxy_name;
      _vala_map_unref0 (cparam_map);
      _vala_ccode_node_unref0 (function);
      return result;
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaPropertyAccessor* _tmp6_ = NULL;
      ValaDataType* _tmp7_ = NULL;
      ValaDataType* _tmp8_ = NULL;
      ValaDataType* owned_type;
      gboolean _tmp9_ = FALSE;
      gboolean _tmp10_;
      ValaPropertyAccessor* _tmp17_ = NULL;
      ValaDataType* _tmp18_ = NULL;
      ValaDataType* _tmp19_;
      ValaArrayType* _tmp20_;
      ValaArrayType* array_type;
      ValaCCodeFunction* _tmp21_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp22_ = NULL;
      gchar* _tmp23_;
      gchar* _tmp24_ = NULL;
      gchar* _tmp25_;
      ValaCCodeParameter* _tmp26_ = NULL;
      ValaCCodeParameter* _tmp27_;
      ValaDataType* _tmp28_ = NULL;
      gboolean _tmp29_;
      ValaCCodeFunction* _tmp48_ = NULL;
      ValaCCodeVariableDeclarator* _tmp49_ = NULL;
      ValaCCodeVariableDeclarator* _tmp50_;
      ValaCCodeIdentifier* _tmp51_ = NULL;
      ValaCCodeIdentifier* _tmp52_;
      ValaCCodeFunctionCall* _tmp53_ = NULL;
      ValaCCodeFunctionCall* _tmp54_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp55_ = NULL;
      ValaCCodeIdentifier* _tmp56_;
      ValaCCodeCastExpression* _tmp57_ = NULL;
      ValaCCodeCastExpression* _tmp58_;
      gchar* _tmp59_ = NULL;
      gchar* _tmp60_;
      gchar* _tmp61_ = NULL;
      gchar* _tmp62_;
      ValaCCodeConstant* _tmp63_ = NULL;
      ValaCCodeConstant* _tmp64_;
      ValaCCodeFunction* _tmp65_ = NULL;
      ValaCCodeIdentifier* _tmp66_ = NULL;
      ValaCCodeIdentifier* _tmp67_;
      ValaCCodeFunction* _tmp68_ = NULL;
      ValaCCodeIdentifier* _tmp69_ = NULL;
      ValaCCodeIdentifier* _tmp70_;
      ValaCCodeUnaryExpression* _tmp71_ = NULL;
      ValaCCodeUnaryExpression* _tmp72_;
      ValaCCodeFunction* _tmp73_ = NULL;
      ValaCCodeVariableDeclarator* _tmp74_ = NULL;
      ValaCCodeVariableDeclarator* _tmp75_;
      ValaCCodeFunction* _tmp76_ = NULL;
      ValaCCodeVariableDeclarator* _tmp77_ = NULL;
      ValaCCodeVariableDeclarator* _tmp78_;
      ValaCCodeFunction* _tmp79_ = NULL;
      ValaCCodeVariableDeclarator* _tmp80_ = NULL;
      ValaCCodeVariableDeclarator* _tmp81_;
      ValaCCodeIdentifier* _tmp82_ = NULL;
      ValaCCodeIdentifier* _tmp83_;
      ValaCCodeFunctionCall* _tmp84_ = NULL;
      ValaCCodeFunctionCall* _tmp85_;
      ValaCCodeFunctionCall* builder_init;
      ValaCCodeIdentifier* _tmp86_ = NULL;
      ValaCCodeIdentifier* _tmp87_;
      ValaCCodeUnaryExpression* _tmp88_ = NULL;
      ValaCCodeUnaryExpression* _tmp89_;
      ValaCCodeIdentifier* _tmp90_ = NULL;
      ValaCCodeIdentifier* _tmp91_;
      ValaCCodeFunction* _tmp92_ = NULL;
      ValaCCodeIdentifier* _tmp93_ = NULL;
      ValaCCodeIdentifier* _tmp94_;
      gchar* _tmp95_ = NULL;
      gchar* _tmp96_;
      ValaCCodeConstant* _tmp97_ = NULL;
      ValaCCodeConstant* _tmp98_;
      ValaCCodeIdentifier* _tmp99_ = NULL;
      ValaCCodeIdentifier* _tmp100_;
      gchar* _tmp101_ = NULL;
      gchar* _tmp102_;
      gchar* _tmp103_ = NULL;
      gchar* _tmp104_;
      ValaCCodeConstant* _tmp105_ = NULL;
      ValaCCodeConstant* _tmp106_;
      ValaCCodeIdentifier* _tmp107_ = NULL;
      ValaCCodeIdentifier* _tmp108_;
      ValaCCodeFunctionCall* _tmp109_ = NULL;
      ValaCCodeFunctionCall* _tmp110_;
      ValaCCodeFunctionCall* builder_end;
      ValaCCodeIdentifier* _tmp111_ = NULL;
      ValaCCodeIdentifier* _tmp112_;
      ValaCCodeUnaryExpression* _tmp113_ = NULL;
      ValaCCodeUnaryExpression* _tmp114_;
      ValaCCodeFunction* _tmp115_ = NULL;
      ValaCCodeIdentifier* _tmp116_ = NULL;
      ValaCCodeIdentifier* _tmp117_;
      ValaCCodeIdentifier* _tmp118_ = NULL;
      ValaCCodeIdentifier* _tmp119_;
      ValaCCodeFunctionCall* _tmp120_ = NULL;
      ValaCCodeIdentifier* _tmp121_ = NULL;
      ValaCCodeIdentifier* _tmp122_;
      ValaCCodeCastExpression* _tmp123_ = NULL;
      ValaCCodeCastExpression* _tmp124_;
      ValaCCodeConstant* _tmp125_ = NULL;
      ValaCCodeConstant* _tmp126_;
      ValaCCodeIdentifier* _tmp127_ = NULL;
      ValaCCodeIdentifier* _tmp128_;
      ValaCCodeConstant* _tmp129_ = NULL;
      ValaCCodeConstant* _tmp130_;
      ValaCCodeConstant* _tmp131_ = NULL;
      ValaCCodeConstant* _tmp132_;
      ValaCCodeConstant* _tmp133_ = NULL;
      ValaCCodeConstant* _tmp134_;
      ValaCCodeConstant* _tmp135_ = NULL;
      ValaCCodeConstant* _tmp136_;
      ValaCCodeFunction* _tmp137_ = NULL;
      ValaCCodeIdentifier* _tmp138_ = NULL;
      ValaCCodeIdentifier* _tmp139_;
      ValaCCodeFunction* _tmp140_ = NULL;
      ValaCCodeIdentifier* _tmp141_ = NULL;
      ValaCCodeIdentifier* _tmp142_;
      ValaCCodeUnaryExpression* _tmp143_ = NULL;
      ValaCCodeUnaryExpression* _tmp144_;
      ValaDataType* _tmp145_ = NULL;
      ValaCCodeFunction* _tmp146_ = NULL;
      ValaCCodeIdentifier* _tmp147_ = NULL;
      ValaCCodeIdentifier* _tmp148_;
      ValaCCodeFunctionCall* _tmp149_ = NULL;
      ValaCCodeFunctionCall* _tmp150_;
      ValaCCodeFunctionCall* get_variant;
      ValaCCodeIdentifier* _tmp151_ = NULL;
      ValaCCodeIdentifier* _tmp152_;
      ValaCCodeConstant* _tmp153_ = NULL;
      ValaCCodeConstant* _tmp154_;
      ValaCCodeIdentifier* _tmp155_ = NULL;
      ValaCCodeIdentifier* _tmp156_;
      ValaCCodeUnaryExpression* _tmp157_ = NULL;
      ValaCCodeUnaryExpression* _tmp158_;
      ValaCCodeFunction* _tmp159_ = NULL;
      ValaCCodeIdentifier* _tmp160_ = NULL;
      ValaCCodeIdentifier* _tmp161_;
      ValaCCodeFunctionCall* _tmp162_ = NULL;
      ValaCCodeFunctionCall* _tmp163_;
      ValaCCodeFunctionCall* unref_reply;
      ValaCCodeIdentifier* _tmp164_ = NULL;
      ValaCCodeIdentifier* _tmp165_;
      ValaCCodeFunction* _tmp166_ = NULL;
      ValaCCodeFunction* _tmp167_ = NULL;
      ValaDataType* _tmp168_ = NULL;
      gboolean _tmp169_;
      ValaCCodeIdentifier* _tmp221_ = NULL;
      ValaCCodeIdentifier* _tmp222_;
      ValaCCodeFunctionCall* _tmp223_ = NULL;
      ValaCCodeIdentifier* _tmp224_ = NULL;
      ValaCCodeIdentifier* _tmp225_;
      ValaCCodeFunction* _tmp226_ = NULL;
      ValaDataType* _tmp227_ = NULL;
      gboolean _tmp228_;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (prop != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) prop);
      _tmp3_ = g_strdup_printf ("%sdbus_proxy_get_%s", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_property_get_get_accessor (prop);
      _tmp7_ = vala_property_accessor_get_value_type (_tmp6_);
      _tmp8_ = vala_data_type_copy (_tmp7_);
      owned_type = _tmp8_;
      vala_data_type_set_value_owned (owned_type, TRUE);
      _tmp10_ = vala_data_type_is_disposable (owned_type);
      if (_tmp10_) {
            ValaPropertyAccessor* _tmp11_ = NULL;
            ValaDataType* _tmp12_ = NULL;
            gboolean _tmp13_;
            _tmp11_ = vala_property_get_get_accessor (prop);
            _tmp12_ = vala_property_accessor_get_value_type (_tmp11_);
            _tmp13_ = vala_data_type_get_value_owned (_tmp12_);
            _tmp9_ = !_tmp13_;
      } else {
            _tmp9_ = FALSE;
      }
      if (_tmp9_) {
            ValaPropertyAccessor* _tmp14_ = NULL;
            ValaDataType* _tmp15_ = NULL;
            ValaSourceReference* _tmp16_ = NULL;
            _tmp14_ = vala_property_get_get_accessor (prop);
            _tmp15_ = vala_property_accessor_get_value_type (_tmp14_);
            _tmp16_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp15_);
            vala_report_error (_tmp16_, "Properties used in D-Bus clients require owned get accessor");
      }
      _tmp17_ = vala_property_get_get_accessor (prop);
      _tmp18_ = vala_property_accessor_get_value_type (_tmp17_);
      _tmp19_ = _tmp18_;
      _tmp20_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp19_) ? ((ValaArrayType*) _tmp19_) : NULL);
      array_type = _tmp20_;
      _tmp21_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp21_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp22_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp23_ = _tmp22_;
      _tmp24_ = g_strdup_printf ("%s*", _tmp23_);
      _tmp25_ = _tmp24_;
      _tmp26_ = vala_ccode_parameter_new ("self", _tmp25_);
      _tmp27_ = _tmp26_;
      vala_ccode_function_add_parameter (function, _tmp27_);
      _vala_ccode_node_unref0 (_tmp27_);
      _g_free0 (_tmp25_);
      _g_free0 (_tmp23_);
      _tmp28_ = vala_property_get_property_type (prop);
      _tmp29_ = vala_data_type_is_real_non_null_struct_type (_tmp28_);
      if (_tmp29_) {
            ValaPropertyAccessor* _tmp30_ = NULL;
            ValaDataType* _tmp31_ = NULL;
            gchar* _tmp32_ = NULL;
            gchar* _tmp33_;
            gchar* _tmp34_ = NULL;
            gchar* _tmp35_;
            ValaCCodeParameter* _tmp36_ = NULL;
            ValaCCodeParameter* _tmp37_;
            _tmp30_ = vala_property_get_get_accessor (prop);
            _tmp31_ = vala_property_accessor_get_value_type (_tmp30_);
            _tmp32_ = vala_data_type_get_cname (_tmp31_);
            _tmp33_ = _tmp32_;
            _tmp34_ = g_strdup_printf ("%s*", _tmp33_);
            _tmp35_ = _tmp34_;
            _tmp36_ = vala_ccode_parameter_new ("result", _tmp35_);
            _tmp37_ = _tmp36_;
            vala_ccode_function_add_parameter (function, _tmp37_);
            _vala_ccode_node_unref0 (_tmp37_);
            _g_free0 (_tmp35_);
            _g_free0 (_tmp33_);
      } else {
            ValaPropertyAccessor* _tmp44_ = NULL;
            ValaDataType* _tmp45_ = NULL;
            gchar* _tmp46_ = NULL;
            gchar* _tmp47_;
            if (array_type != NULL) {
                  {
                        gint dim;
                        dim = 1;
                        {
                              gboolean _tmp38_;
                              _tmp38_ = TRUE;
                              while (TRUE) {
                                    gint _tmp39_;
                                    gchar* _tmp40_ = NULL;
                                    gchar* _tmp41_;
                                    ValaCCodeParameter* _tmp42_ = NULL;
                                    ValaCCodeParameter* _tmp43_;
                                    if (!_tmp38_) {
                                          dim++;
                                    }
                                    _tmp38_ = FALSE;
                                    _tmp39_ = vala_array_type_get_rank (array_type);
                                    if (!(dim <= _tmp39_)) {
                                          break;
                                    }
                                    _tmp40_ = g_strdup_printf ("result_length%d", dim);
                                    _tmp41_ = _tmp40_;
                                    _tmp42_ = vala_ccode_parameter_new (_tmp41_, "int*");
                                    _tmp43_ = _tmp42_;
                                    vala_ccode_function_add_parameter (function, _tmp43_);
                                    _vala_ccode_node_unref0 (_tmp43_);
                                    _g_free0 (_tmp41_);
                              }
                        }
                  }
            }
            _tmp44_ = vala_property_get_get_accessor (prop);
            _tmp45_ = vala_property_accessor_get_value_type (_tmp44_);
            _tmp46_ = vala_data_type_get_cname (_tmp45_);
            _tmp47_ = _tmp46_;
            vala_ccode_function_set_return_type (function, _tmp47_);
            _g_free0 (_tmp47_);
      }
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
      _tmp48_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp49_ = vala_ccode_variable_declarator_new ("*_inner_reply", NULL, NULL);
      _tmp50_ = _tmp49_;
      vala_ccode_function_add_declaration (_tmp48_, "GVariant", (ValaCCodeDeclarator*) _tmp50_, 0);
      _vala_ccode_node_unref0 (_tmp50_);
      _tmp51_ = vala_ccode_identifier_new ("g_dbus_proxy_get_cached_property");
      _tmp52_ = _tmp51_;
      _tmp53_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp52_);
      _tmp54_ = _tmp53_;
      _vala_ccode_node_unref0 (_tmp52_);
      ccall = _tmp54_;
      _tmp55_ = vala_ccode_identifier_new ("self");
      _tmp56_ = _tmp55_;
      _tmp57_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp56_, "GDBusProxy *");
      _tmp58_ = _tmp57_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp58_);
      _vala_ccode_node_unref0 (_tmp58_);
      _vala_ccode_node_unref0 (_tmp56_);
      _tmp59_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
      _tmp60_ = _tmp59_;
      _tmp61_ = g_strdup_printf ("\"%s\"", _tmp60_);
      _tmp62_ = _tmp61_;
      _tmp63_ = vala_ccode_constant_new (_tmp62_);
      _tmp64_ = _tmp63_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp64_);
      _vala_ccode_node_unref0 (_tmp64_);
      _g_free0 (_tmp62_);
      _g_free0 (_tmp60_);
      _tmp65_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp66_ = vala_ccode_identifier_new ("_inner_reply");
      _tmp67_ = _tmp66_;
      vala_ccode_function_add_assignment (_tmp65_, (ValaCCodeExpression*) _tmp67_, (ValaCCodeExpression*) ccall);
      _vala_ccode_node_unref0 (_tmp67_);
      _tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp69_ = vala_ccode_identifier_new ("_inner_reply");
      _tmp70_ = _tmp69_;
      _tmp71_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp70_);
      _tmp72_ = _tmp71_;
      vala_ccode_function_open_if (_tmp68_, (ValaCCodeExpression*) _tmp72_);
      _vala_ccode_node_unref0 (_tmp72_);
      _vala_ccode_node_unref0 (_tmp70_);
      _tmp73_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp74_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
      _tmp75_ = _tmp74_;
      vala_ccode_function_add_declaration (_tmp73_, "GVariant", (ValaCCodeDeclarator*) _tmp75_, 0);
      _vala_ccode_node_unref0 (_tmp75_);
      _tmp76_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp77_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
      _tmp78_ = _tmp77_;
      vala_ccode_function_add_declaration (_tmp76_, "GVariant", (ValaCCodeDeclarator*) _tmp78_, 0);
      _vala_ccode_node_unref0 (_tmp78_);
      _tmp79_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp80_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
      _tmp81_ = _tmp80_;
      vala_ccode_function_add_declaration (_tmp79_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp81_, 0);
      _vala_ccode_node_unref0 (_tmp81_);
      _tmp82_ = vala_ccode_identifier_new ("g_variant_builder_init");
      _tmp83_ = _tmp82_;
      _tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
      _tmp85_ = _tmp84_;
      _vala_ccode_node_unref0 (_tmp83_);
      builder_init = _tmp85_;
      _tmp86_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp87_ = _tmp86_;
      _tmp88_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp87_);
      _tmp89_ = _tmp88_;
      vala_ccode_function_call_add_argument (builder_init, (ValaCCodeExpression*) _tmp89_);
      _vala_ccode_node_unref0 (_tmp89_);
      _vala_ccode_node_unref0 (_tmp87_);
      _tmp90_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
      _tmp91_ = _tmp90_;
      vala_ccode_function_call_add_argument (builder_init, (ValaCCodeExpression*) _tmp91_);
      _vala_ccode_node_unref0 (_tmp91_);
      _tmp92_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp92_, (ValaCCodeExpression*) builder_init);
      _tmp93_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp94_ = _tmp93_;
      _tmp95_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp96_ = _tmp95_;
      _tmp97_ = vala_ccode_constant_new (_tmp96_);
      _tmp98_ = _tmp97_;
      vala_gvariant_module_write_expression ((ValaGVariantModule*) self, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp94_, (ValaCCodeExpression*) _tmp98_, NULL);
      _vala_ccode_node_unref0 (_tmp98_);
      _g_free0 (_tmp96_);
      _vala_ccode_node_unref0 (_tmp94_);
      _tmp99_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp100_ = _tmp99_;
      _tmp101_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
      _tmp102_ = _tmp101_;
      _tmp103_ = g_strdup_printf ("\"%s\"", _tmp102_);
      _tmp104_ = _tmp103_;
      _tmp105_ = vala_ccode_constant_new (_tmp104_);
      _tmp106_ = _tmp105_;
      vala_gvariant_module_write_expression ((ValaGVariantModule*) self, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp100_, (ValaCCodeExpression*) _tmp106_, NULL);
      _vala_ccode_node_unref0 (_tmp106_);
      _g_free0 (_tmp104_);
      _g_free0 (_tmp102_);
      _vala_ccode_node_unref0 (_tmp100_);
      _tmp107_ = vala_ccode_identifier_new ("g_variant_builder_end");
      _tmp108_ = _tmp107_;
      _tmp109_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp108_);
      _tmp110_ = _tmp109_;
      _vala_ccode_node_unref0 (_tmp108_);
      builder_end = _tmp110_;
      _tmp111_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp112_ = _tmp111_;
      _tmp113_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp112_);
      _tmp114_ = _tmp113_;
      vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp114_);
      _vala_ccode_node_unref0 (_tmp114_);
      _vala_ccode_node_unref0 (_tmp112_);
      _tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp116_ = vala_ccode_identifier_new ("_arguments");
      _tmp117_ = _tmp116_;
      vala_ccode_function_add_assignment (_tmp115_, (ValaCCodeExpression*) _tmp117_, (ValaCCodeExpression*) builder_end);
      _vala_ccode_node_unref0 (_tmp117_);
      _tmp118_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
      _tmp119_ = _tmp118_;
      _tmp120_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp119_);
      _vala_ccode_node_unref0 (ccall);
      ccall = _tmp120_;
      _vala_ccode_node_unref0 (_tmp119_);
      _tmp121_ = vala_ccode_identifier_new ("self");
      _tmp122_ = _tmp121_;
      _tmp123_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp122_, "GDBusProxy *");
      _tmp124_ = _tmp123_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp124_);
      _vala_ccode_node_unref0 (_tmp124_);
      _vala_ccode_node_unref0 (_tmp122_);
      _tmp125_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Get\"");
      _tmp126_ = _tmp125_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp126_);
      _vala_ccode_node_unref0 (_tmp126_);
      _tmp127_ = vala_ccode_identifier_new ("_arguments");
      _tmp128_ = _tmp127_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp128_);
      _vala_ccode_node_unref0 (_tmp128_);
      _tmp129_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
      _tmp130_ = _tmp129_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp130_);
      _vala_ccode_node_unref0 (_tmp130_);
      _tmp131_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) prop);
      _tmp132_ = _tmp131_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp132_);
      _vala_ccode_node_unref0 (_tmp132_);
      _tmp133_ = vala_ccode_constant_new ("NULL");
      _tmp134_ = _tmp133_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp134_);
      _vala_ccode_node_unref0 (_tmp134_);
      _tmp135_ = vala_ccode_constant_new ("NULL");
      _tmp136_ = _tmp135_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp136_);
      _vala_ccode_node_unref0 (_tmp136_);
      _tmp137_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp138_ = vala_ccode_identifier_new ("_reply");
      _tmp139_ = _tmp138_;
      vala_ccode_function_add_assignment (_tmp137_, (ValaCCodeExpression*) _tmp139_, (ValaCCodeExpression*) ccall);
      _vala_ccode_node_unref0 (_tmp139_);
      _tmp140_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp141_ = vala_ccode_identifier_new ("_reply");
      _tmp142_ = _tmp141_;
      _tmp143_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp142_);
      _tmp144_ = _tmp143_;
      vala_ccode_function_open_if (_tmp140_, (ValaCCodeExpression*) _tmp144_);
      _vala_ccode_node_unref0 (_tmp144_);
      _vala_ccode_node_unref0 (_tmp142_);
      _tmp145_ = vala_property_get_property_type (prop);
      vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp145_);
      _tmp146_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_close (_tmp146_);
      _tmp147_ = vala_ccode_identifier_new ("g_variant_get");
      _tmp148_ = _tmp147_;
      _tmp149_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp148_);
      _tmp150_ = _tmp149_;
      _vala_ccode_node_unref0 (_tmp148_);
      get_variant = _tmp150_;
      _tmp151_ = vala_ccode_identifier_new ("_reply");
      _tmp152_ = _tmp151_;
      vala_ccode_function_call_add_argument (get_variant, (ValaCCodeExpression*) _tmp152_);
      _vala_ccode_node_unref0 (_tmp152_);
      _tmp153_ = vala_ccode_constant_new ("\"(v)\"");
      _tmp154_ = _tmp153_;
      vala_ccode_function_call_add_argument (get_variant, (ValaCCodeExpression*) _tmp154_);
      _vala_ccode_node_unref0 (_tmp154_);
      _tmp155_ = vala_ccode_identifier_new ("_inner_reply");
      _tmp156_ = _tmp155_;
      _tmp157_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp156_);
      _tmp158_ = _tmp157_;
      vala_ccode_function_call_add_argument (get_variant, (ValaCCodeExpression*) _tmp158_);
      _vala_ccode_node_unref0 (_tmp158_);
      _vala_ccode_node_unref0 (_tmp156_);
      _tmp159_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp159_, (ValaCCodeExpression*) get_variant);
      _tmp160_ = vala_ccode_identifier_new ("g_variant_unref");
      _tmp161_ = _tmp160_;
      _tmp162_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp161_);
      _tmp163_ = _tmp162_;
      _vala_ccode_node_unref0 (_tmp161_);
      unref_reply = _tmp163_;
      _tmp164_ = vala_ccode_identifier_new ("_reply");
      _tmp165_ = _tmp164_;
      vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp165_);
      _vala_ccode_node_unref0 (_tmp165_);
      _tmp166_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp166_, (ValaCCodeExpression*) unref_reply);
      _tmp167_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_close (_tmp167_);
      _tmp168_ = vala_property_get_property_type (prop);
      _tmp169_ = vala_data_type_is_real_non_null_struct_type (_tmp168_);
      if (_tmp169_) {
            ValaCCodeIdentifier* _tmp170_ = NULL;
            ValaCCodeIdentifier* _tmp171_;
            ValaCCodeUnaryExpression* _tmp172_ = NULL;
            ValaCCodeUnaryExpression* _tmp173_;
            ValaCCodeUnaryExpression* target;
            ValaPropertyAccessor* _tmp174_ = NULL;
            ValaDataType* _tmp175_ = NULL;
            ValaCCodeIdentifier* _tmp176_ = NULL;
            ValaCCodeIdentifier* _tmp177_;
            ValaCCodeExpression* _tmp178_ = NULL;
            ValaCCodeExpression* _tmp179_;
            ValaCCodeExpression* _result_;
            ValaCCodeFunction* _tmp180_ = NULL;
            _tmp170_ = vala_ccode_identifier_new ("result");
            _tmp171_ = _tmp170_;
            _tmp172_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp171_);
            _tmp173_ = _tmp172_;
            _vala_ccode_node_unref0 (_tmp171_);
            target = _tmp173_;
            _tmp174_ = vala_property_get_get_accessor (prop);
            _tmp175_ = vala_property_accessor_get_value_type (_tmp174_);
            _tmp176_ = vala_ccode_identifier_new ("_inner_reply");
            _tmp177_ = _tmp176_;
            _tmp178_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp175_, (ValaCCodeExpression*) _tmp177_, (ValaCCodeExpression*) target, NULL, NULL);
            _tmp179_ = _tmp178_;
            _vala_ccode_node_unref0 (_tmp177_);
            _result_ = _tmp179_;
            _tmp180_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_assignment (_tmp180_, (ValaCCodeExpression*) target, _result_);
            _vala_ccode_node_unref0 (_result_);
            _vala_ccode_node_unref0 (target);
      } else {
            ValaCCodeFunction* _tmp181_ = NULL;
            ValaPropertyAccessor* _tmp182_ = NULL;
            ValaDataType* _tmp183_ = NULL;
            gchar* _tmp184_ = NULL;
            gchar* _tmp185_;
            ValaCCodeVariableDeclarator* _tmp186_ = NULL;
            ValaCCodeVariableDeclarator* _tmp187_;
            ValaPropertyAccessor* _tmp197_ = NULL;
            ValaDataType* _tmp198_ = NULL;
            ValaCCodeIdentifier* _tmp199_ = NULL;
            ValaCCodeIdentifier* _tmp200_;
            ValaCCodeIdentifier* _tmp201_ = NULL;
            ValaCCodeIdentifier* _tmp202_;
            ValaCCodeExpression* _tmp203_ = NULL;
            ValaCCodeExpression* _tmp204_;
            ValaCCodeExpression* _result_;
            ValaCCodeFunction* _tmp205_ = NULL;
            ValaCCodeIdentifier* _tmp206_ = NULL;
            ValaCCodeIdentifier* _tmp207_;
            _tmp181_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp182_ = vala_property_get_get_accessor (prop);
            _tmp183_ = vala_property_accessor_get_value_type (_tmp182_);
            _tmp184_ = vala_data_type_get_cname (_tmp183_);
            _tmp185_ = _tmp184_;
            _tmp186_ = vala_ccode_variable_declarator_new ("_result", NULL, NULL);
            _tmp187_ = _tmp186_;
            vala_ccode_function_add_declaration (_tmp181_, _tmp185_, (ValaCCodeDeclarator*) _tmp187_, 0);
            _vala_ccode_node_unref0 (_tmp187_);
            _g_free0 (_tmp185_);
            if (array_type != NULL) {
                  {
                        gint dim;
                        dim = 1;
                        {
                              gboolean _tmp188_;
                              _tmp188_ = TRUE;
                              while (TRUE) {
                                    gint _tmp189_;
                                    ValaCCodeFunction* _tmp190_ = NULL;
                                    gchar* _tmp191_ = NULL;
                                    gchar* _tmp192_;
                                    ValaCCodeConstant* _tmp193_ = NULL;
                                    ValaCCodeConstant* _tmp194_;
                                    ValaCCodeVariableDeclarator* _tmp195_ = NULL;
                                    ValaCCodeVariableDeclarator* _tmp196_;
                                    if (!_tmp188_) {
                                          dim++;
                                    }
                                    _tmp188_ = FALSE;
                                    _tmp189_ = vala_array_type_get_rank (array_type);
                                    if (!(dim <= _tmp189_)) {
                                          break;
                                    }
                                    _tmp190_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    _tmp191_ = g_strdup_printf ("_result_length%d", dim);
                                    _tmp192_ = _tmp191_;
                                    _tmp193_ = vala_ccode_constant_new ("0");
                                    _tmp194_ = _tmp193_;
                                    _tmp195_ = vala_ccode_variable_declarator_new (_tmp192_, (ValaCCodeExpression*) _tmp194_, NULL);
                                    _tmp196_ = _tmp195_;
                                    vala_ccode_function_add_declaration (_tmp190_, "int", (ValaCCodeDeclarator*) _tmp196_, 0);
                                    _vala_ccode_node_unref0 (_tmp196_);
                                    _vala_ccode_node_unref0 (_tmp194_);
                                    _g_free0 (_tmp192_);
                              }
                        }
                  }
            }
            _tmp197_ = vala_property_get_get_accessor (prop);
            _tmp198_ = vala_property_accessor_get_value_type (_tmp197_);
            _tmp199_ = vala_ccode_identifier_new ("_inner_reply");
            _tmp200_ = _tmp199_;
            _tmp201_ = vala_ccode_identifier_new ("_result");
            _tmp202_ = _tmp201_;
            _tmp203_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp198_, (ValaCCodeExpression*) _tmp200_, (ValaCCodeExpression*) _tmp202_, NULL, NULL);
            _tmp204_ = _tmp203_;
            _vala_ccode_node_unref0 (_tmp202_);
            _vala_ccode_node_unref0 (_tmp200_);
            _result_ = _tmp204_;
            _tmp205_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp206_ = vala_ccode_identifier_new ("_result");
            _tmp207_ = _tmp206_;
            vala_ccode_function_add_assignment (_tmp205_, (ValaCCodeExpression*) _tmp207_, _result_);
            _vala_ccode_node_unref0 (_tmp207_);
            if (array_type != NULL) {
                  {
                        gint dim;
                        dim = 1;
                        {
                              gboolean _tmp208_;
                              _tmp208_ = TRUE;
                              while (TRUE) {
                                    gint _tmp209_;
                                    ValaCCodeFunction* _tmp210_ = NULL;
                                    gchar* _tmp211_ = NULL;
                                    gchar* _tmp212_;
                                    ValaCCodeIdentifier* _tmp213_ = NULL;
                                    ValaCCodeIdentifier* _tmp214_;
                                    ValaCCodeUnaryExpression* _tmp215_ = NULL;
                                    ValaCCodeUnaryExpression* _tmp216_;
                                    gchar* _tmp217_ = NULL;
                                    gchar* _tmp218_;
                                    ValaCCodeIdentifier* _tmp219_ = NULL;
                                    ValaCCodeIdentifier* _tmp220_;
                                    if (!_tmp208_) {
                                          dim++;
                                    }
                                    _tmp208_ = FALSE;
                                    _tmp209_ = vala_array_type_get_rank (array_type);
                                    if (!(dim <= _tmp209_)) {
                                          break;
                                    }
                                    _tmp210_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
                                    _tmp211_ = g_strdup_printf ("result_length%d", dim);
                                    _tmp212_ = _tmp211_;
                                    _tmp213_ = vala_ccode_identifier_new (_tmp212_);
                                    _tmp214_ = _tmp213_;
                                    _tmp215_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp214_);
                                    _tmp216_ = _tmp215_;
                                    _tmp217_ = g_strdup_printf ("_result_length%d", dim);
                                    _tmp218_ = _tmp217_;
                                    _tmp219_ = vala_ccode_identifier_new (_tmp218_);
                                    _tmp220_ = _tmp219_;
                                    vala_ccode_function_add_assignment (_tmp210_, (ValaCCodeExpression*) _tmp216_, (ValaCCodeExpression*) _tmp220_);
                                    _vala_ccode_node_unref0 (_tmp220_);
                                    _g_free0 (_tmp218_);
                                    _vala_ccode_node_unref0 (_tmp216_);
                                    _vala_ccode_node_unref0 (_tmp214_);
                                    _g_free0 (_tmp212_);
                              }
                        }
                  }
            }
            _vala_ccode_node_unref0 (_result_);
      }
      _tmp221_ = vala_ccode_identifier_new ("g_variant_unref");
      _tmp222_ = _tmp221_;
      _tmp223_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp222_);
      _vala_ccode_node_unref0 (unref_reply);
      unref_reply = _tmp223_;
      _vala_ccode_node_unref0 (_tmp222_);
      _tmp224_ = vala_ccode_identifier_new ("_inner_reply");
      _tmp225_ = _tmp224_;
      vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp225_);
      _vala_ccode_node_unref0 (_tmp225_);
      _tmp226_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp226_, (ValaCCodeExpression*) unref_reply);
      _tmp227_ = vala_property_get_property_type (prop);
      _tmp228_ = vala_data_type_is_real_non_null_struct_type (_tmp227_);
      if (_tmp228_) {
            ValaCCodeFunction* _tmp229_ = NULL;
            _tmp229_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            vala_ccode_function_add_return (_tmp229_, NULL);
      } else {
            ValaCCodeFunction* _tmp230_ = NULL;
            ValaCCodeIdentifier* _tmp231_ = NULL;
            ValaCCodeIdentifier* _tmp232_;
            _tmp230_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
            _tmp231_ = vala_ccode_identifier_new ("_result");
            _tmp232_ = _tmp231_;
            vala_ccode_function_add_return (_tmp230_, (ValaCCodeExpression*) _tmp232_);
            _vala_ccode_node_unref0 (_tmp232_);
      }
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = proxy_name;
      _vala_ccode_node_unref0 (unref_reply);
      _vala_ccode_node_unref0 (get_variant);
      _vala_ccode_node_unref0 (builder_end);
      _vala_ccode_node_unref0 (builder_init);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (function);
      _vala_code_node_unref0 (array_type);
      _vala_code_node_unref0 (owned_type);
      _g_free0 (dbus_iface_name);
      return result;
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop) {
      gchar* result = NULL;
      gchar* _tmp0_ = NULL;
      gchar* _tmp1_;
      const gchar* _tmp2_ = NULL;
      gchar* _tmp3_ = NULL;
      gchar* _tmp4_;
      gchar* proxy_name;
      gchar* _tmp5_ = NULL;
      gchar* dbus_iface_name;
      ValaPropertyAccessor* _tmp6_ = NULL;
      ValaDataType* _tmp7_ = NULL;
      ValaDataType* _tmp8_;
      ValaArrayType* _tmp9_;
      ValaArrayType* array_type;
      ValaCCodeFunction* _tmp10_ = NULL;
      ValaCCodeFunction* function;
      gchar* _tmp11_ = NULL;
      gchar* _tmp12_;
      gchar* _tmp13_ = NULL;
      gchar* _tmp14_;
      ValaCCodeParameter* _tmp15_ = NULL;
      ValaCCodeParameter* _tmp16_;
      ValaDataType* _tmp17_ = NULL;
      gboolean _tmp18_;
      ValaCCodeFunction* _tmp39_ = NULL;
      ValaCCodeVariableDeclarator* _tmp40_ = NULL;
      ValaCCodeVariableDeclarator* _tmp41_;
      ValaCCodeFunction* _tmp42_ = NULL;
      ValaCCodeVariableDeclarator* _tmp43_ = NULL;
      ValaCCodeVariableDeclarator* _tmp44_;
      ValaCCodeFunction* _tmp45_ = NULL;
      ValaCCodeVariableDeclarator* _tmp46_ = NULL;
      ValaCCodeVariableDeclarator* _tmp47_;
      ValaCCodeIdentifier* _tmp48_ = NULL;
      ValaCCodeIdentifier* _tmp49_;
      ValaCCodeFunctionCall* _tmp50_ = NULL;
      ValaCCodeFunctionCall* _tmp51_;
      ValaCCodeFunctionCall* builder_init;
      ValaCCodeIdentifier* _tmp52_ = NULL;
      ValaCCodeIdentifier* _tmp53_;
      ValaCCodeUnaryExpression* _tmp54_ = NULL;
      ValaCCodeUnaryExpression* _tmp55_;
      ValaCCodeIdentifier* _tmp56_ = NULL;
      ValaCCodeIdentifier* _tmp57_;
      ValaCCodeFunction* _tmp58_ = NULL;
      ValaCCodeIdentifier* _tmp59_ = NULL;
      ValaCCodeIdentifier* _tmp60_;
      gchar* _tmp61_ = NULL;
      gchar* _tmp62_;
      ValaCCodeConstant* _tmp63_ = NULL;
      ValaCCodeConstant* _tmp64_;
      ValaCCodeIdentifier* _tmp65_ = NULL;
      ValaCCodeIdentifier* _tmp66_;
      gchar* _tmp67_ = NULL;
      gchar* _tmp68_;
      gchar* _tmp69_ = NULL;
      gchar* _tmp70_;
      ValaCCodeConstant* _tmp71_ = NULL;
      ValaCCodeConstant* _tmp72_;
      ValaCCodeIdentifier* _tmp73_ = NULL;
      ValaCCodeIdentifier* _tmp74_;
      ValaCCodeFunctionCall* _tmp75_ = NULL;
      ValaCCodeFunctionCall* _tmp76_;
      ValaCCodeFunctionCall* builder_open;
      ValaCCodeIdentifier* _tmp77_ = NULL;
      ValaCCodeIdentifier* _tmp78_;
      ValaCCodeUnaryExpression* _tmp79_ = NULL;
      ValaCCodeUnaryExpression* _tmp80_;
      ValaCCodeIdentifier* _tmp81_ = NULL;
      ValaCCodeIdentifier* _tmp82_;
      ValaCCodeFunction* _tmp83_ = NULL;
      ValaDataType* _tmp84_ = NULL;
      gboolean _tmp85_;
      ValaCCodeIdentifier* _tmp100_ = NULL;
      ValaCCodeIdentifier* _tmp101_;
      ValaCCodeFunctionCall* _tmp102_ = NULL;
      ValaCCodeFunctionCall* _tmp103_;
      ValaCCodeFunctionCall* builder_close;
      ValaCCodeIdentifier* _tmp104_ = NULL;
      ValaCCodeIdentifier* _tmp105_;
      ValaCCodeUnaryExpression* _tmp106_ = NULL;
      ValaCCodeUnaryExpression* _tmp107_;
      ValaCCodeFunction* _tmp108_ = NULL;
      ValaCCodeIdentifier* _tmp109_ = NULL;
      ValaCCodeIdentifier* _tmp110_;
      ValaCCodeFunctionCall* _tmp111_ = NULL;
      ValaCCodeFunctionCall* _tmp112_;
      ValaCCodeFunctionCall* builder_end;
      ValaCCodeIdentifier* _tmp113_ = NULL;
      ValaCCodeIdentifier* _tmp114_;
      ValaCCodeUnaryExpression* _tmp115_ = NULL;
      ValaCCodeUnaryExpression* _tmp116_;
      ValaCCodeFunction* _tmp117_ = NULL;
      ValaCCodeIdentifier* _tmp118_ = NULL;
      ValaCCodeIdentifier* _tmp119_;
      ValaCCodeIdentifier* _tmp120_ = NULL;
      ValaCCodeIdentifier* _tmp121_;
      ValaCCodeFunctionCall* _tmp122_ = NULL;
      ValaCCodeFunctionCall* _tmp123_;
      ValaCCodeFunctionCall* ccall;
      ValaCCodeIdentifier* _tmp124_ = NULL;
      ValaCCodeIdentifier* _tmp125_;
      ValaCCodeCastExpression* _tmp126_ = NULL;
      ValaCCodeCastExpression* _tmp127_;
      ValaCCodeConstant* _tmp128_ = NULL;
      ValaCCodeConstant* _tmp129_;
      ValaCCodeIdentifier* _tmp130_ = NULL;
      ValaCCodeIdentifier* _tmp131_;
      ValaCCodeConstant* _tmp132_ = NULL;
      ValaCCodeConstant* _tmp133_;
      ValaCCodeConstant* _tmp134_ = NULL;
      ValaCCodeConstant* _tmp135_;
      ValaCCodeConstant* _tmp136_ = NULL;
      ValaCCodeConstant* _tmp137_;
      ValaCCodeConstant* _tmp138_ = NULL;
      ValaCCodeConstant* _tmp139_;
      ValaCCodeFunction* _tmp140_ = NULL;
      ValaCCodeIdentifier* _tmp141_ = NULL;
      ValaCCodeIdentifier* _tmp142_;
      ValaCCodeFunction* _tmp143_ = NULL;
      ValaCCodeIdentifier* _tmp144_ = NULL;
      ValaCCodeIdentifier* _tmp145_;
      ValaCCodeUnaryExpression* _tmp146_ = NULL;
      ValaCCodeUnaryExpression* _tmp147_;
      ValaCCodeFunction* _tmp148_ = NULL;
      ValaCCodeFunction* _tmp149_ = NULL;
      ValaCCodeIdentifier* _tmp150_ = NULL;
      ValaCCodeIdentifier* _tmp151_;
      ValaCCodeFunctionCall* _tmp152_ = NULL;
      ValaCCodeFunctionCall* _tmp153_;
      ValaCCodeFunctionCall* unref_reply;
      ValaCCodeIdentifier* _tmp154_ = NULL;
      ValaCCodeIdentifier* _tmp155_;
      ValaCCodeFunction* _tmp156_ = NULL;
      g_return_val_if_fail (self != NULL, NULL);
      g_return_val_if_fail (main_iface != NULL, NULL);
      g_return_val_if_fail (iface != NULL, NULL);
      g_return_val_if_fail (prop != NULL, NULL);
      _tmp0_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) main_iface);
      _tmp1_ = _tmp0_;
      _tmp2_ = vala_symbol_get_name ((ValaSymbol*) prop);
      _tmp3_ = g_strdup_printf ("%sdbus_proxy_set_%s", _tmp1_, _tmp2_);
      _tmp4_ = _tmp3_;
      _g_free0 (_tmp1_);
      proxy_name = _tmp4_;
      _tmp5_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) iface);
      dbus_iface_name = _tmp5_;
      _tmp6_ = vala_property_get_set_accessor (prop);
      _tmp7_ = vala_property_accessor_get_value_type (_tmp6_);
      _tmp8_ = _tmp7_;
      _tmp9_ = _vala_code_node_ref0 (VALA_IS_ARRAY_TYPE (_tmp8_) ? ((ValaArrayType*) _tmp8_) : NULL);
      array_type = _tmp9_;
      _tmp10_ = vala_ccode_function_new (proxy_name, "void");
      function = _tmp10_;
      vala_ccode_function_set_modifiers (function, VALA_CCODE_MODIFIERS_STATIC);
      _tmp11_ = vala_typesymbol_get_cname ((ValaTypeSymbol*) iface, FALSE);
      _tmp12_ = _tmp11_;
      _tmp13_ = g_strdup_printf ("%s*", _tmp12_);
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_parameter_new ("self", _tmp14_);
      _tmp16_ = _tmp15_;
      vala_ccode_function_add_parameter (function, _tmp16_);
      _vala_ccode_node_unref0 (_tmp16_);
      _g_free0 (_tmp14_);
      _g_free0 (_tmp12_);
      _tmp17_ = vala_property_get_property_type (prop);
      _tmp18_ = vala_data_type_is_real_non_null_struct_type (_tmp17_);
      if (_tmp18_) {
            ValaPropertyAccessor* _tmp19_ = NULL;
            ValaDataType* _tmp20_ = NULL;
            gchar* _tmp21_ = NULL;
            gchar* _tmp22_;
            gchar* _tmp23_ = NULL;
            gchar* _tmp24_;
            ValaCCodeParameter* _tmp25_ = NULL;
            ValaCCodeParameter* _tmp26_;
            _tmp19_ = vala_property_get_set_accessor (prop);
            _tmp20_ = vala_property_accessor_get_value_type (_tmp19_);
            _tmp21_ = vala_data_type_get_cname (_tmp20_);
            _tmp22_ = _tmp21_;
            _tmp23_ = g_strdup_printf ("%s*", _tmp22_);
            _tmp24_ = _tmp23_;
            _tmp25_ = vala_ccode_parameter_new ("value", _tmp24_);
            _tmp26_ = _tmp25_;
            vala_ccode_function_add_parameter (function, _tmp26_);
            _vala_ccode_node_unref0 (_tmp26_);
            _g_free0 (_tmp24_);
            _g_free0 (_tmp22_);
      } else {
            ValaPropertyAccessor* _tmp27_ = NULL;
            ValaDataType* _tmp28_ = NULL;
            gchar* _tmp29_ = NULL;
            gchar* _tmp30_;
            ValaCCodeParameter* _tmp31_ = NULL;
            ValaCCodeParameter* _tmp32_;
            _tmp27_ = vala_property_get_set_accessor (prop);
            _tmp28_ = vala_property_accessor_get_value_type (_tmp27_);
            _tmp29_ = vala_data_type_get_cname (_tmp28_);
            _tmp30_ = _tmp29_;
            _tmp31_ = vala_ccode_parameter_new ("value", _tmp30_);
            _tmp32_ = _tmp31_;
            vala_ccode_function_add_parameter (function, _tmp32_);
            _vala_ccode_node_unref0 (_tmp32_);
            _g_free0 (_tmp30_);
            if (array_type != NULL) {
                  {
                        gint dim;
                        dim = 1;
                        {
                              gboolean _tmp33_;
                              _tmp33_ = TRUE;
                              while (TRUE) {
                                    gint _tmp34_;
                                    gchar* _tmp35_ = NULL;
                                    gchar* _tmp36_;
                                    ValaCCodeParameter* _tmp37_ = NULL;
                                    ValaCCodeParameter* _tmp38_;
                                    if (!_tmp33_) {
                                          dim++;
                                    }
                                    _tmp33_ = FALSE;
                                    _tmp34_ = vala_array_type_get_rank (array_type);
                                    if (!(dim <= _tmp34_)) {
                                          break;
                                    }
                                    _tmp35_ = g_strdup_printf ("value_length%d", dim);
                                    _tmp36_ = _tmp35_;
                                    _tmp37_ = vala_ccode_parameter_new (_tmp36_, "int");
                                    _tmp38_ = _tmp37_;
                                    vala_ccode_function_add_parameter (function, _tmp38_);
                                    _vala_ccode_node_unref0 (_tmp38_);
                                    _g_free0 (_tmp36_);
                              }
                        }
                  }
            }
      }
      vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
      _tmp39_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp40_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
      _tmp41_ = _tmp40_;
      vala_ccode_function_add_declaration (_tmp39_, "GVariant", (ValaCCodeDeclarator*) _tmp41_, 0);
      _vala_ccode_node_unref0 (_tmp41_);
      _tmp42_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp43_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
      _tmp44_ = _tmp43_;
      vala_ccode_function_add_declaration (_tmp42_, "GVariant", (ValaCCodeDeclarator*) _tmp44_, 0);
      _vala_ccode_node_unref0 (_tmp44_);
      _tmp45_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp46_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
      _tmp47_ = _tmp46_;
      vala_ccode_function_add_declaration (_tmp45_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp47_, 0);
      _vala_ccode_node_unref0 (_tmp47_);
      _tmp48_ = vala_ccode_identifier_new ("g_variant_builder_init");
      _tmp49_ = _tmp48_;
      _tmp50_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp49_);
      _tmp51_ = _tmp50_;
      _vala_ccode_node_unref0 (_tmp49_);
      builder_init = _tmp51_;
      _tmp52_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp53_ = _tmp52_;
      _tmp54_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp53_);
      _tmp55_ = _tmp54_;
      vala_ccode_function_call_add_argument (builder_init, (ValaCCodeExpression*) _tmp55_);
      _vala_ccode_node_unref0 (_tmp55_);
      _vala_ccode_node_unref0 (_tmp53_);
      _tmp56_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
      _tmp57_ = _tmp56_;
      vala_ccode_function_call_add_argument (builder_init, (ValaCCodeExpression*) _tmp57_);
      _vala_ccode_node_unref0 (_tmp57_);
      _tmp58_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp58_, (ValaCCodeExpression*) builder_init);
      _tmp59_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp60_ = _tmp59_;
      _tmp61_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp62_ = _tmp61_;
      _tmp63_ = vala_ccode_constant_new (_tmp62_);
      _tmp64_ = _tmp63_;
      vala_gvariant_module_write_expression ((ValaGVariantModule*) self, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp60_, (ValaCCodeExpression*) _tmp64_, NULL);
      _vala_ccode_node_unref0 (_tmp64_);
      _g_free0 (_tmp62_);
      _vala_ccode_node_unref0 (_tmp60_);
      _tmp65_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp66_ = _tmp65_;
      _tmp67_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) prop);
      _tmp68_ = _tmp67_;
      _tmp69_ = g_strdup_printf ("\"%s\"", _tmp68_);
      _tmp70_ = _tmp69_;
      _tmp71_ = vala_ccode_constant_new (_tmp70_);
      _tmp72_ = _tmp71_;
      vala_gvariant_module_write_expression ((ValaGVariantModule*) self, ((ValaCCodeBaseModule*) self)->string_type, (ValaCCodeExpression*) _tmp66_, (ValaCCodeExpression*) _tmp72_, NULL);
      _vala_ccode_node_unref0 (_tmp72_);
      _g_free0 (_tmp70_);
      _g_free0 (_tmp68_);
      _vala_ccode_node_unref0 (_tmp66_);
      _tmp73_ = vala_ccode_identifier_new ("g_variant_builder_open");
      _tmp74_ = _tmp73_;
      _tmp75_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp74_);
      _tmp76_ = _tmp75_;
      _vala_ccode_node_unref0 (_tmp74_);
      builder_open = _tmp76_;
      _tmp77_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp78_ = _tmp77_;
      _tmp79_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp78_);
      _tmp80_ = _tmp79_;
      vala_ccode_function_call_add_argument (builder_open, (ValaCCodeExpression*) _tmp80_);
      _vala_ccode_node_unref0 (_tmp80_);
      _vala_ccode_node_unref0 (_tmp78_);
      _tmp81_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_VARIANT");
      _tmp82_ = _tmp81_;
      vala_ccode_function_call_add_argument (builder_open, (ValaCCodeExpression*) _tmp82_);
      _vala_ccode_node_unref0 (_tmp82_);
      _tmp83_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp83_, (ValaCCodeExpression*) builder_open);
      _tmp84_ = vala_property_get_property_type (prop);
      _tmp85_ = vala_data_type_is_real_non_null_struct_type (_tmp84_);
      if (_tmp85_) {
            ValaPropertyAccessor* _tmp86_ = NULL;
            ValaDataType* _tmp87_ = NULL;
            ValaCCodeIdentifier* _tmp88_ = NULL;
            ValaCCodeIdentifier* _tmp89_;
            ValaCCodeIdentifier* _tmp90_ = NULL;
            ValaCCodeIdentifier* _tmp91_;
            ValaCCodeUnaryExpression* _tmp92_ = NULL;
            ValaCCodeUnaryExpression* _tmp93_;
            _tmp86_ = vala_property_get_set_accessor (prop);
            _tmp87_ = vala_property_accessor_get_value_type (_tmp86_);
            _tmp88_ = vala_ccode_identifier_new ("_arguments_builder");
            _tmp89_ = _tmp88_;
            _tmp90_ = vala_ccode_identifier_new ("value");
            _tmp91_ = _tmp90_;
            _tmp92_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp91_);
            _tmp93_ = _tmp92_;
            vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp87_, (ValaCCodeExpression*) _tmp89_, (ValaCCodeExpression*) _tmp93_, (ValaSymbol*) prop);
            _vala_ccode_node_unref0 (_tmp93_);
            _vala_ccode_node_unref0 (_tmp91_);
            _vala_ccode_node_unref0 (_tmp89_);
      } else {
            ValaPropertyAccessor* _tmp94_ = NULL;
            ValaDataType* _tmp95_ = NULL;
            ValaCCodeIdentifier* _tmp96_ = NULL;
            ValaCCodeIdentifier* _tmp97_;
            ValaCCodeIdentifier* _tmp98_ = NULL;
            ValaCCodeIdentifier* _tmp99_;
            _tmp94_ = vala_property_get_set_accessor (prop);
            _tmp95_ = vala_property_accessor_get_value_type (_tmp94_);
            _tmp96_ = vala_ccode_identifier_new ("_arguments_builder");
            _tmp97_ = _tmp96_;
            _tmp98_ = vala_ccode_identifier_new ("value");
            _tmp99_ = _tmp98_;
            vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp95_, (ValaCCodeExpression*) _tmp97_, (ValaCCodeExpression*) _tmp99_, (ValaSymbol*) prop);
            _vala_ccode_node_unref0 (_tmp99_);
            _vala_ccode_node_unref0 (_tmp97_);
      }
      _tmp100_ = vala_ccode_identifier_new ("g_variant_builder_close");
      _tmp101_ = _tmp100_;
      _tmp102_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp101_);
      _tmp103_ = _tmp102_;
      _vala_ccode_node_unref0 (_tmp101_);
      builder_close = _tmp103_;
      _tmp104_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp105_ = _tmp104_;
      _tmp106_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp105_);
      _tmp107_ = _tmp106_;
      vala_ccode_function_call_add_argument (builder_close, (ValaCCodeExpression*) _tmp107_);
      _vala_ccode_node_unref0 (_tmp107_);
      _vala_ccode_node_unref0 (_tmp105_);
      _tmp108_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp108_, (ValaCCodeExpression*) builder_close);
      _tmp109_ = vala_ccode_identifier_new ("g_variant_builder_end");
      _tmp110_ = _tmp109_;
      _tmp111_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp110_);
      _tmp112_ = _tmp111_;
      _vala_ccode_node_unref0 (_tmp110_);
      builder_end = _tmp112_;
      _tmp113_ = vala_ccode_identifier_new ("_arguments_builder");
      _tmp114_ = _tmp113_;
      _tmp115_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp114_);
      _tmp116_ = _tmp115_;
      vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp116_);
      _vala_ccode_node_unref0 (_tmp116_);
      _vala_ccode_node_unref0 (_tmp114_);
      _tmp117_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp118_ = vala_ccode_identifier_new ("_arguments");
      _tmp119_ = _tmp118_;
      vala_ccode_function_add_assignment (_tmp117_, (ValaCCodeExpression*) _tmp119_, (ValaCCodeExpression*) builder_end);
      _vala_ccode_node_unref0 (_tmp119_);
      _tmp120_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
      _tmp121_ = _tmp120_;
      _tmp122_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp121_);
      _tmp123_ = _tmp122_;
      _vala_ccode_node_unref0 (_tmp121_);
      ccall = _tmp123_;
      _tmp124_ = vala_ccode_identifier_new ("self");
      _tmp125_ = _tmp124_;
      _tmp126_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp125_, "GDBusProxy *");
      _tmp127_ = _tmp126_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp127_);
      _vala_ccode_node_unref0 (_tmp127_);
      _vala_ccode_node_unref0 (_tmp125_);
      _tmp128_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Set\"");
      _tmp129_ = _tmp128_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp129_);
      _vala_ccode_node_unref0 (_tmp129_);
      _tmp130_ = vala_ccode_identifier_new ("_arguments");
      _tmp131_ = _tmp130_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp131_);
      _vala_ccode_node_unref0 (_tmp131_);
      _tmp132_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
      _tmp133_ = _tmp132_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp133_);
      _vala_ccode_node_unref0 (_tmp133_);
      _tmp134_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) prop);
      _tmp135_ = _tmp134_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp135_);
      _vala_ccode_node_unref0 (_tmp135_);
      _tmp136_ = vala_ccode_constant_new ("NULL");
      _tmp137_ = _tmp136_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp137_);
      _vala_ccode_node_unref0 (_tmp137_);
      _tmp138_ = vala_ccode_constant_new ("NULL");
      _tmp139_ = _tmp138_;
      vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp139_);
      _vala_ccode_node_unref0 (_tmp139_);
      _tmp140_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp141_ = vala_ccode_identifier_new ("_reply");
      _tmp142_ = _tmp141_;
      vala_ccode_function_add_assignment (_tmp140_, (ValaCCodeExpression*) _tmp142_, (ValaCCodeExpression*) ccall);
      _vala_ccode_node_unref0 (_tmp142_);
      _tmp143_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      _tmp144_ = vala_ccode_identifier_new ("_reply");
      _tmp145_ = _tmp144_;
      _tmp146_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp145_);
      _tmp147_ = _tmp146_;
      vala_ccode_function_open_if (_tmp143_, (ValaCCodeExpression*) _tmp147_);
      _vala_ccode_node_unref0 (_tmp147_);
      _vala_ccode_node_unref0 (_tmp145_);
      _tmp148_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_return (_tmp148_, NULL);
      _tmp149_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_close (_tmp149_);
      _tmp150_ = vala_ccode_identifier_new ("g_variant_unref");
      _tmp151_ = _tmp150_;
      _tmp152_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp151_);
      _tmp153_ = _tmp152_;
      _vala_ccode_node_unref0 (_tmp151_);
      unref_reply = _tmp153_;
      _tmp154_ = vala_ccode_identifier_new ("_reply");
      _tmp155_ = _tmp154_;
      vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp155_);
      _vala_ccode_node_unref0 (_tmp155_);
      _tmp156_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
      vala_ccode_function_add_expression (_tmp156_, (ValaCCodeExpression*) unref_reply);
      vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
      vala_ccode_file_add_function_declaration (((ValaCCodeBaseModule*) self)->cfile, function);
      vala_ccode_file_add_function (((ValaCCodeBaseModule*) self)->cfile, function);
      result = proxy_name;
      _vala_ccode_node_unref0 (unref_reply);
      _vala_ccode_node_unref0 (ccall);
      _vala_ccode_node_unref0 (builder_end);
      _vala_ccode_node_unref0 (builder_close);
      _vala_ccode_node_unref0 (builder_open);
      _vala_ccode_node_unref0 (builder_init);
      _vala_ccode_node_unref0 (function);
      _vala_code_node_unref0 (array_type);
      _g_free0 (dbus_iface_name);
      return result;
}


static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym) {
      ValaGDBusClientModule * self;
      gchar* _tmp0_ = NULL;
      gchar* dbus_iface_name;
      ValaCCodeIdentifier* _tmp1_ = NULL;
      ValaCCodeIdentifier* _tmp2_;
      ValaCCodeFunctionCall* _tmp3_ = NULL;
      ValaCCodeFunctionCall* _tmp4_;
      ValaCCodeFunctionCall* quark;
      ValaCCodeConstant* _tmp5_ = NULL;
      ValaCCodeConstant* _tmp6_;
      gchar* _tmp7_ = NULL;
      gchar* _tmp8_;
      gchar* _tmp9_;
      gchar* _tmp10_;
      ValaCCodeIdentifier* _tmp11_ = NULL;
      ValaCCodeIdentifier* _tmp12_;
      ValaCCodeIdentifier* proxy_type;
      ValaCCodeIdentifier* _tmp13_ = NULL;
      ValaCCodeIdentifier* _tmp14_;
      ValaCCodeFunctionCall* _tmp15_ = NULL;
      ValaCCodeFunctionCall* _tmp16_;
      ValaCCodeFunctionCall* set_qdata;
      gchar* _tmp17_ = NULL;
      gchar* _tmp18_;
      gchar* _tmp19_ = NULL;
      gchar* _tmp20_;
      ValaCCodeIdentifier* _tmp21_ = NULL;
      ValaCCodeIdentifier* _tmp22_;
      ValaCCodeCastExpression* _tmp23_ = NULL;
      ValaCCodeCastExpression* _tmp24_;
      ValaCCodeExpressionStatement* _tmp25_ = NULL;
      ValaCCodeExpressionStatement* _tmp26_;
      ValaCCodeIdentifier* _tmp27_ = NULL;
      ValaCCodeIdentifier* _tmp28_;
      ValaCCodeFunctionCall* _tmp29_ = NULL;
      ValaCCodeConstant* _tmp30_ = NULL;
      ValaCCodeConstant* _tmp31_;
      ValaCCodeIdentifier* _tmp32_ = NULL;
      ValaCCodeIdentifier* _tmp33_;
      ValaCCodeFunctionCall* _tmp34_ = NULL;
      gchar* _tmp35_ = NULL;
      gchar* _tmp36_;
      gchar* _tmp37_ = NULL;
      gchar* _tmp38_;
      ValaCCodeIdentifier* _tmp39_ = NULL;
      ValaCCodeIdentifier* _tmp40_;
      gchar* _tmp41_ = NULL;
      gchar* _tmp42_;
      ValaCCodeConstant* _tmp43_ = NULL;
      ValaCCodeConstant* _tmp44_;
      ValaCCodeExpressionStatement* _tmp45_ = NULL;
      ValaCCodeExpressionStatement* _tmp46_;
      self = (ValaGDBusClientModule*) base;
      g_return_if_fail (block != NULL);
      g_return_if_fail (sym != NULL);
      if (!VALA_IS_INTERFACE (sym)) {
            return;
      }
      _tmp0_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) sym);
      dbus_iface_name = _tmp0_;
      if (dbus_iface_name == NULL) {
            _g_free0 (dbus_iface_name);
            return;
      }
      _tmp1_ = vala_ccode_identifier_new ("g_quark_from_static_string");
      _tmp2_ = _tmp1_;
      _tmp3_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp2_);
      _tmp4_ = _tmp3_;
      _vala_ccode_node_unref0 (_tmp2_);
      quark = _tmp4_;
      _tmp5_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
      _tmp6_ = _tmp5_;
      vala_ccode_function_call_add_argument (quark, (ValaCCodeExpression*) _tmp6_);
      _vala_ccode_node_unref0 (_tmp6_);
      _tmp7_ = vala_symbol_get_lower_case_cprefix ((ValaSymbol*) sym);
      _tmp8_ = _tmp7_;
      _tmp9_ = g_strconcat (_tmp8_, "proxy_get_type", NULL);
      _tmp10_ = _tmp9_;
      _tmp11_ = vala_ccode_identifier_new (_tmp10_);
      _tmp12_ = _tmp11_;
      _g_free0 (_tmp10_);
      _g_free0 (_tmp8_);
      proxy_type = _tmp12_;
      _tmp13_ = vala_ccode_identifier_new ("g_type_set_qdata");
      _tmp14_ = _tmp13_;
      _tmp15_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp14_);
      _tmp16_ = _tmp15_;
      _vala_ccode_node_unref0 (_tmp14_);
      set_qdata = _tmp16_;
      _tmp17_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp18_ = _tmp17_;
      _tmp19_ = g_strdup_printf ("%s_type_id", _tmp18_);
      _tmp20_ = _tmp19_;
      _tmp21_ = vala_ccode_identifier_new (_tmp20_);
      _tmp22_ = _tmp21_;
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) _tmp22_);
      _vala_ccode_node_unref0 (_tmp22_);
      _g_free0 (_tmp20_);
      _g_free0 (_tmp18_);
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) quark);
      _tmp23_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) proxy_type, "void*");
      _tmp24_ = _tmp23_;
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) _tmp24_);
      _vala_ccode_node_unref0 (_tmp24_);
      _tmp25_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_qdata);
      _tmp26_ = _tmp25_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp26_);
      _vala_ccode_node_unref0 (_tmp26_);
      _tmp27_ = vala_ccode_identifier_new ("g_quark_from_static_string");
      _tmp28_ = _tmp27_;
      _tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
      _vala_ccode_node_unref0 (quark);
      quark = _tmp29_;
      _vala_ccode_node_unref0 (_tmp28_);
      _tmp30_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
      _tmp31_ = _tmp30_;
      vala_ccode_function_call_add_argument (quark, (ValaCCodeExpression*) _tmp31_);
      _vala_ccode_node_unref0 (_tmp31_);
      _tmp32_ = vala_ccode_identifier_new ("g_type_set_qdata");
      _tmp33_ = _tmp32_;
      _tmp34_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp33_);
      _vala_ccode_node_unref0 (set_qdata);
      set_qdata = _tmp34_;
      _vala_ccode_node_unref0 (_tmp33_);
      _tmp35_ = vala_symbol_get_lower_case_cname ((ValaSymbol*) sym, NULL);
      _tmp36_ = _tmp35_;
      _tmp37_ = g_strdup_printf ("%s_type_id", _tmp36_);
      _tmp38_ = _tmp37_;
      _tmp39_ = vala_ccode_identifier_new (_tmp38_);
      _tmp40_ = _tmp39_;
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) _tmp40_);
      _vala_ccode_node_unref0 (_tmp40_);
      _g_free0 (_tmp38_);
      _g_free0 (_tmp36_);
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) quark);
      _tmp41_ = g_strdup_printf ("\"%s\"", dbus_iface_name);
      _tmp42_ = _tmp41_;
      _tmp43_ = vala_ccode_constant_new (_tmp42_);
      _tmp44_ = _tmp43_;
      vala_ccode_function_call_add_argument (set_qdata, (ValaCCodeExpression*) _tmp44_);
      _vala_ccode_node_unref0 (_tmp44_);
      _g_free0 (_tmp42_);
      _tmp45_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) set_qdata);
      _tmp46_ = _tmp45_;
      vala_ccode_block_add_statement (block, (ValaCCodeNode*) _tmp46_);
      _vala_ccode_node_unref0 (_tmp46_);
      _vala_ccode_node_unref0 (set_qdata);
      _vala_ccode_node_unref0 (proxy_type);
      _vala_ccode_node_unref0 (quark);
      _g_free0 (dbus_iface_name);
}


ValaGDBusClientModule* vala_gd_bus_client_module_construct (GType object_type) {
      ValaGDBusClientModule* self = NULL;
      self = (ValaGDBusClientModule*) vala_gd_bus_module_construct (object_type);
      return self;
}


ValaGDBusClientModule* vala_gd_bus_client_module_new (void) {
      return vala_gd_bus_client_module_construct (VALA_TYPE_GD_BUS_CLIENT_MODULE);
}


static void vala_gd_bus_client_module_class_init (ValaGDBusClientModuleClass * klass) {
      vala_gd_bus_client_module_parent_class = g_type_class_peek_parent (klass);
      VALA_CCODE_BASE_MODULE_CLASS (klass)->generate_dynamic_method_wrapper = vala_gd_bus_client_module_real_generate_dynamic_method_wrapper;
      VALA_CCODE_BASE_MODULE_CLASS (klass)->generate_interface_declaration = vala_gd_bus_client_module_real_generate_interface_declaration;
      VALA_CODE_VISITOR_CLASS (klass)->visit_interface = vala_gd_bus_client_module_real_visit_interface;
      VALA_CODE_VISITOR_CLASS (klass)->visit_method_call = vala_gd_bus_client_module_real_visit_method_call;
      VALA_CCODE_BASE_MODULE_CLASS (klass)->register_dbus_info = vala_gd_bus_client_module_real_register_dbus_info;
}


static void vala_gd_bus_client_module_instance_init (ValaGDBusClientModule * self) {
}


GType vala_gd_bus_client_module_get_type (void) {
      static volatile gsize vala_gd_bus_client_module_type_id__volatile = 0;
      if (g_once_init_enter (&vala_gd_bus_client_module_type_id__volatile)) {
            static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusClientModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_client_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusClientModule), 0, (GInstanceInitFunc) vala_gd_bus_client_module_instance_init, NULL };
            GType vala_gd_bus_client_module_type_id;
            vala_gd_bus_client_module_type_id = g_type_register_static (VALA_TYPE_GD_BUS_MODULE, "ValaGDBusClientModule", &g_define_type_info, 0);
            g_once_init_leave (&vala_gd_bus_client_module_type_id__volatile, vala_gd_bus_client_module_type_id);
      }
      return vala_gd_bus_client_module_type_id__volatile;
}




Generated by  Doxygen 1.6.0   Back to index