public override void get_type_interface_init_statements(CCodeBlock block, bool plugin) { foreach (DataType base_type in class_reference.get_base_types()) { if (!(base_type.data_type is Interface)) { continue; } var iface = (Interface)base_type.data_type; var iface_info_name = "%s_info".printf(CCodeBaseModule.get_ccode_lower_case_name(iface, null)); if (!plugin) { var reg_call = new CCodeFunctionCall(new CCodeIdentifier("g_type_add_interface_static")); reg_call.add_argument(new CCodeIdentifier("%s_type_id".printf(CCodeBaseModule.get_ccode_lower_case_name(class_reference, null)))); reg_call.add_argument(new CCodeIdentifier(CCodeBaseModule.get_ccode_type_id(iface))); reg_call.add_argument(new CCodeIdentifier("&%s".printf(iface_info_name))); block.add_statement(new CCodeExpressionStatement(reg_call)); } else { var reg_call = new CCodeFunctionCall(new CCodeIdentifier("g_type_module_add_interface")); reg_call.add_argument(new CCodeIdentifier("module")); reg_call.add_argument(new CCodeIdentifier("%s_type_id".printf(CCodeBaseModule.get_ccode_lower_case_name(class_reference, null)))); reg_call.add_argument(new CCodeIdentifier(CCodeBaseModule.get_ccode_type_id(iface))); reg_call.add_argument(new CCodeIdentifier("&%s".printf(iface_info_name))); block.add_statement(new CCodeExpressionStatement(reg_call)); } } ((CCodeBaseModule)context.codegen).register_dbus_info(block, class_reference); }
public override void get_type_interface_init_statements(CCodeBlock block, bool plugin) { /* register all prerequisites */ foreach (DataType prereq_ref in interface_reference.get_prerequisites()) { var prereq = prereq_ref.data_type; var func = new CCodeFunctionCall(new CCodeIdentifier("g_type_interface_add_prerequisite")); func.add_argument(new CCodeIdentifier("%s_type_id".printf(CCodeBaseModule.get_ccode_lower_case_name(interface_reference)))); func.add_argument(new CCodeIdentifier(CCodeBaseModule.get_ccode_type_id(prereq))); block.add_statement(new CCodeExpressionStatement(func)); } ((CCodeBaseModule)context.codegen).register_dbus_info(block, interface_reference); }
public override string get_parent_type_name() { return(CCodeBaseModule.get_ccode_type_id(class_reference.base_class)); }