From: Jürg Billeter Date: Wed, 8 Nov 2006 07:04:54 +0000 (+0000) Subject: support interfaces in header cycles add get_interfaces method X-Git-Tag: VALA_0_0_6~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e3fb02ced542a7cef9d9c7ba1d310e24af42e293;p=thirdparty%2Fvala.git support interfaces in header cycles add get_interfaces method 2006-11-08 Jürg Billeter * vala/valacodegenerator.vala: support interfaces in header cycles * vala/valanamespace.vala: add get_interfaces method svn path=/trunk/; revision=170 --- diff --git a/vala/ChangeLog b/vala/ChangeLog index b0c4f7a9f..6f2a4cc4e 100644 --- a/vala/ChangeLog +++ b/vala/ChangeLog @@ -1,3 +1,8 @@ +2006-11-08 Jürg Billeter + + * vala/valacodegenerator.vala: support interfaces in header cycles + * vala/valanamespace.vala: add get_interfaces method + 2006-11-06 Jürg Billeter * vala/parser.y: support unary ~ operator diff --git a/vala/vala/valacodegenerator.vala b/vala/vala/valacodegenerator.vala index beeeb687b..696ada83a 100644 --- a/vala/vala/valacodegenerator.vala +++ b/vala/vala/valacodegenerator.vala @@ -251,6 +251,11 @@ public class Vala.CodeGenerator : CodeVisitor { header_type_declaration.append (new CCodeTypeDefinition ("struct _%s".printf (cl.get_cname ()), new CCodeVariableDeclarator (cl.get_cname ()))); header_type_declaration.append (new CCodeTypeDefinition ("struct _%sClass".printf (cl.get_cname ()), new CCodeVariableDeclarator ("%sClass".printf (cl.get_cname ())))); } + var ifaces = ns.get_interfaces (); + foreach (Interface iface in ifaces) { + header_type_declaration.append (new CCodeTypeDefinition ("struct _%s".printf (iface.get_cname ()), new CCodeVariableDeclarator (iface.get_cname ()))); + header_type_declaration.append (new CCodeTypeDefinition ("struct _%s".printf (iface.get_type_cname ()), new CCodeVariableDeclarator (iface.get_type_cname ()))); + } } } } diff --git a/vala/vala/valanamespace.vala b/vala/vala/valanamespace.vala index 6cea14662..4371086e3 100644 --- a/vala/vala/valanamespace.vala +++ b/vala/vala/valanamespace.vala @@ -136,6 +136,15 @@ public class Vala.Namespace : CodeNode { return classes.copy (); } + /** + * Returns a copy of the list of interfaces. + * + * @return interface list + */ + public ref List get_interfaces () { + return interfaces.copy (); + } + /** * Adds the specified constant to this namespace. *