]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
support interfaces in header cycles add get_interfaces method
authorJürg Billeter <j@bitron.ch>
Wed, 8 Nov 2006 07:04:54 +0000 (07:04 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 8 Nov 2006 07:04:54 +0000 (07:04 +0000)
2006-11-08  Jürg Billeter  <j@bitron.ch>

* vala/valacodegenerator.vala: support interfaces in header cycles
* vala/valanamespace.vala: add get_interfaces method

svn path=/trunk/; revision=170

vala/ChangeLog
vala/vala/valacodegenerator.vala
vala/vala/valanamespace.vala

index b0c4f7a9f253144b11cd5888e77afd87e4e629ef..6f2a4cc4e65e8f1d9e7eb3bc72005a79e3a6ce2f 100644 (file)
@@ -1,3 +1,8 @@
+2006-11-08  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valacodegenerator.vala: support interfaces in header cycles
+       * vala/valanamespace.vala: add get_interfaces method
+
 2006-11-06  Jürg Billeter  <j@bitron.ch>
 
        * vala/parser.y: support unary ~ operator
index beeeb687b5e11ad83a6677a1e53915ef6fe86f7d..696ada83a93b0d1c0090fb4bcaef5db2e5f27a8c 100644 (file)
@@ -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 ())));
+                                       }
                                }
                        }
                }
index 6cea14662e64e6e2cf17e50c1b38e5b4c1394a98..4371086e317339057f3d8ed1f1480076c3fe4a1f 100644 (file)
@@ -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<weak Interface> get_interfaces () {
+               return interfaces.copy ();
+       }
+       
        /**
         * Adds the specified constant to this namespace.
         *