[vala/wip/dbusgen: 8/8] tests: Add dbusgen test



commit 54c810e168d6311a6576f5476358b650ec310489
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Sep 19 22:17:39 2018 +0200

    tests: Add dbusgen test

 configure.ac                                 |   1 +
 tests/Makefile.am                            |   1 +
 tests/dbusgen/Makefile.am                    |  25 ++
 tests/dbusgen/test-codegen.xml               | 461 +++++++++++++++++++++++++++
 tests/dbusgen/test-codegen.xml.vala-expected | 169 ++++++++++
 5 files changed, 657 insertions(+)
---
diff --git a/configure.ac b/configure.ac
index e7d119b74..49e7be289 100644
--- a/configure.ac
+++ b/configure.ac
@@ -169,6 +169,7 @@ AC_CONFIG_FILES([Makefile
            compiler/Makefile
            vapi/Makefile
            tests/Makefile
+           tests/dbusgen/Makefile
            tests/girwriter/Makefile
            tests/gtktemplate/Makefile
            doc/Makefile
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1b8162638..0d34ae610 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,7 @@
 NULL =
 
 SUBDIRS = \
+       dbusgen \
        girwriter \
        gtktemplate \
        $(NULL)
diff --git a/tests/dbusgen/Makefile.am b/tests/dbusgen/Makefile.am
new file mode 100644
index 000000000..fdd1fc6a8
--- /dev/null
+++ b/tests/dbusgen/Makefile.am
@@ -0,0 +1,25 @@
+NULL =
+
+check-dbusgen: $(top_builddir)/dbusgen/valadbusgen
+       $(top_builddir)/dbusgen/valadbusgen \
+               --vapidir $(top_srcdir)/vapi \
+               test-codegen.xml; \
+       $(top_builddir)/compiler/valac \
+               -C \
+               --vapidir $(top_srcdir)/vapi \
+               --pkg gio-2.0 \
+               test-codegen.xml.vala; \
+       tail -n +3 test-codegen.xml.vala | diff -wu $(srcdir)/test-codegen.xml.vala-expected - || exit 1; \
+       rm -f test-codegen.xml.vala test-codegen.xml.c
+
+check: check-dbusgen
+
+EXTRA_DIST = \
+       test-codegen.xml \
+       test-codegen.xml.vala-expected \
+       $(NULL)
+
+CLEANFILES = \
+       test-codegen.xml.c \
+       test-codegen.xml.vala \
+       $(NULL)
diff --git a/tests/dbusgen/test-codegen.xml b/tests/dbusgen/test-codegen.xml
new file mode 100644
index 000000000..80b391988
--- /dev/null
+++ b/tests/dbusgen/test-codegen.xml
@@ -0,0 +1,461 @@
+<node>
+  <!-- Fully Loaded Interface -->
+  <interface name="org.project.Bar">
+    <annotation name="org.gtk.GDBus.DocString" value="The org.project.Bar interface is very complicated."/>
+    <annotation name="org.gtk.GDBus.DocString.Short" value="Brief interface doc string"/>
+
+    <method name="HelloWorld">
+      <annotation name="org.gtk.GDBus.DocString" value="Method 
&lt;emphasis&gt;documentation&lt;/emphasis&gt; blablablabla."/>
+      <annotation name="ExistingAnnotation" value="blah"/>
+      <annotation name="org.gtk.GDBus.ExistingInternalAnnotation" value="booh"/>
+      <arg name="greeting" direction="in" type="s">
+        <annotation name="org.gtk.GDBus.DocString" value="in param doc"/>
+      </arg>
+      <arg name="response" direction="out" type="s">
+        <annotation name="org.gtk.GDBus.DocString" value="out param doc"/>
+      </arg>
+    </method>
+
+    <method name="TestPrimitiveTypes">
+      <arg direction="in"  type="y" name="val_byte" />
+      <arg direction="in"  type="b" name="val_boolean" />
+      <arg direction="in"  type="n" name="val_int16" />
+      <arg direction="in"  type="q" name="val_uint16" />
+      <arg direction="in"  type="i" name="val_int32" />
+      <arg direction="in"  type="u" name="val_uint32" />
+      <arg direction="in"  type="x" name="val_int64" />
+      <arg direction="in"  type="t" name="val_uint64" />
+      <arg direction="in"  type="d" name="val_double" />
+      <arg direction="in"  type="s" name="val_string" />
+      <arg direction="in"  type="o" name="val_objpath" />
+      <arg direction="in"  type="g" name="val_signature" />
+      <arg direction="in"  type="ay" name="val_bytestring" />
+      <arg direction="out" type="y" name="ret_byte" />
+      <arg direction="out" type="b" name="ret_boolean" />
+      <arg direction="out" type="n" name="ret_int16" />
+      <arg direction="out" type="q" name="ret_uint16" />
+      <arg direction="out" type="i" name="ret_int32" />
+      <arg direction="out" type="u" name="ret_uint32" />
+      <arg direction="out" type="x" name="ret_int64" />
+      <arg direction="out" type="t" name="ret_uint64" />
+      <arg direction="out" type="d" name="ret_double" />
+      <arg direction="out" type="s" name="ret_string" />
+      <arg direction="out" type="o" name="ret_objpath" />
+      <arg direction="out" type="g" name="ret_signature" />
+      <arg direction="out" type="ay" name="ret_bytestring" />
+    </method>
+
+    <method name="TestNonPrimitiveTypes">
+      <arg direction="in" type="a{ss}" name="dict_s_to_s" />
+      <arg direction="in" type="a{s(ii)}" name="dict_s_to_pairs" />
+      <arg direction="in" type="(iss)" name="a_struct" />
+      <arg direction="in" type="as" name="array_of_strings" />
+      <arg direction="out" type="as" name="ret_array_of_strings" />
+      <arg direction="in" type="ao" name="array_of_objpaths" />
+      <arg direction="out" type="ao" name="ret_array_of_objpaths" />
+      <arg direction="in" type="ag" name="array_of_signatures" />
+      <arg direction="out" type="ag" name="ret_array_of_signatures" />
+      <arg direction="in" type="aay" name="array_of_bytestrings" />
+      <arg direction="out" type="aay" name="ret_array_of_bytestrings" />
+      <arg direction="out" type="ay" name="result" />
+    </method>
+
+    <method name="RequestSignalEmission">
+      <arg direction="in" type="i" name="which_one" />
+    </method>
+
+    <method name="RequestMultiPropertyMods"/>
+
+    <method name="UnimplementedMethod"/>
+
+    <method name="PropertyCancellation"/>
+
+    <signal name="TestSignal">
+      <annotation name="org.gtk.GDBus.DocString" value="Signal documentation."/>
+      <arg type="i" name="val_int32">
+        <annotation name="org.gtk.GDBus.DocString" value="Signal param docs"/>
+      </arg>
+      <arg type="as" name="array_of_strings" />
+      <arg type="aay" name="array_of_bytestrings" />
+      <arg type="a{s(ii)}" name="dict_s_to_pairs" />
+    </signal>
+
+    <signal name="AnotherSignal">
+      <arg type="s" name="word" />
+    </signal>
+
+    <property name="y" type="y" access="readwrite">
+      <annotation name="org.gtk.GDBus.DocString" value="&lt;para&gt;Property docs, 
yah...&lt;/para&gt;&lt;para&gt;Second paragraph.&lt;/para&gt;"/>
+    </property>
+    <property name="b" type="b" access="readwrite"/>
+    <property name="n" type="n" access="readwrite"/>
+    <property name="q" type="q" access="readwrite"/>
+    <property name="i" type="i" access="readwrite"/>
+    <property name="u" type="u" access="readwrite"/>
+    <property name="x" type="x" access="readwrite"/>
+    <property name="t" type="t" access="readwrite"/>
+    <property name="d" type="d" access="readwrite"/>
+    <property name="s" type="s" access="readwrite"/>
+    <property name="o" type="o" access="readwrite"/>
+    <property name="g" type="g" access="readwrite"/>
+    <property name="ay" type="ay" access="readwrite"/>
+    <property name="as" type="as" access="readwrite"/>
+    <property name="aay" type="aay" access="readwrite"/>
+    <property name="ao" type="ao" access="readwrite"/>
+    <property name="ag" type="ag" access="readwrite"/>
+    <property name="FinallyNormalName" type="s" access="readwrite"/>
+    <property name="ReadonlyProperty" type="s" access="read"/>
+    <property name="WriteonlyProperty" type="s" access="write"/>
+
+    <!-- unset properties -->
+    <property name="unset_i" type="i" access="readwrite"/>
+    <property name="unset_d" type="d" access="readwrite"/>
+    <property name="unset_s" type="s" access="readwrite"/>
+    <property name="unset_o" type="o" access="readwrite"/>
+    <property name="unset_g" type="g" access="readwrite"/>
+    <property name="unset_ay" type="ay" access="readwrite"/>
+    <property name="unset_as" type="as" access="readwrite"/>
+    <property name="unset_ao" type="ao" access="readwrite"/>
+    <property name="unset_ag" type="ag" access="readwrite"/>
+    <property name="unset_struct" type="(idsogayasaoag)" access="readwrite"/>
+  </interface> <!-- End org.project.Bar -->
+
+  <!-- Namespaced -->
+  <interface name="org.project.Bar.Frobnicator">
+    <method name="RandomMethod"/>
+  </interface>
+
+  <!-- Empty -->
+  <interface name="org.project.Baz">
+  </interface>
+
+  <!-- Outside D-Bus prefix -->
+  <interface name="com.acme.Coyote">
+    <method name="Run"/>
+    <method name="Sleep"/>
+    <method name="Attack"/>
+    <signal name="Surprised"/>
+    <property name="Mood" type="s" access="read"/>
+  </interface>
+
+  <!-- force various names -->
+  <interface name="com.acme.Rocket">
+    <!-- Forcing the typename via an annotation -->
+    <annotation name="org.gtk.GDBus.C.Name" value="Rocket123"/>
+
+    <!-- ditto method -->
+    <method name="Ignite">
+      <annotation name="org.gtk.GDBus.C.Name" value="ignite_xyz"/>
+    </method>
+
+    <!-- ditto signal -->
+    <signal name="Exploded">
+      <annotation name="org.gtk.GDBus.C.Name" value="exploded-xyz"/>
+    </signal>
+
+    <!-- ditto property -->
+    <property name="Speed" type="d" access="read">
+      <annotation name="org.gtk.GDBus.C.Name" value="speed-xyz"/>
+    </property>
+
+    <property name="Direction" type="(ddd)" access="read"/>
+
+    <!-- Check there's no conflict with the GType iface_name_get_type() function -->
+    <property name="Type" type="s" access="read"/>
+  </interface>
+
+  <!-- Test interface for forcing use of GVariant -->
+  <interface name="org.project.Bat">
+
+    <!-- Forcing GVariant for types that would be mapped -->
+    <method name="ForceMethod">
+      <arg name="force_in_i" type="i" direction="in">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_in_s" type="s" direction="in">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_in_ay" type="ay" direction="in">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_in_struct" type="(i)" direction="in">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_out_i" type="i" direction="out">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_out_s" type="s" direction="out">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_out_ay" type="ay" direction="out">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_out_struct" type="(i)" direction="out">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+    </method>
+
+    <signal name="ForceSignal">
+      <arg name="force_i" type="i">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_s" type="s">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_ay" type="ay">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+      <arg name="force_struct" type="(i)">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+      </arg>
+    </signal>
+
+    <property name="force_i" type="i" access="readwrite">
+      <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+    </property>
+    <property name="force_s" type="s" access="readwrite">
+      <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+    </property>
+    <property name="force_ay" type="ay" access="readwrite">
+      <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+    </property>
+    <property name="force_struct" type="(i)" access="readwrite">
+      <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
+    </property>
+
+  </interface> <!-- End org.project.Bat -->
+
+  <!-- Test interface for g-authorized-method -->
+  <interface name="org.project.Authorize">
+    <method name="CheckNotAuthorized"/>
+    <method name="CheckAuthorized"/>
+    <method name="CheckNotAuthorizedFromObject"/>
+  </interface> <!-- End org.project.Authorize -->
+
+  <!-- Test interfaces for handling methods in a thread -->
+  <interface name="org.project.MethodThreads">
+    <method name="GetSelf">
+      <arg name="self_pointer" direction="out" type="s"/>
+    </method>
+  </interface> <!-- End org.project.MethodThreads -->
+
+  <!--
+    org.project.InlineDocs:
+    @short_description: The short description
+
+    Here is the <emphasis>longer</emphasis> description.
+
+    With lots of stuff.
+  -->
+  <interface name="org.project.InlineDocs">
+
+    <!--
+      FooMethod:
+      @greeting: The docs for greeting parameter.
+      @response: The docs for response parameter.
+
+      The docs for the actual method.
+
+      Multi-paragraph.
+
+      Test of inline links: The #org.project.Bar D-Bus interface,
+      org.project.Bar.HelloWorld() method, the
+      #org.project.Bar::TestSignal, the
+      #org.project.InlineDocs:Property3 property.
+    -->
+    <method name="FooMethod">
+      <arg name="greeting" direction="in" type="s"/>
+      <arg name="response" direction="out" type="s"/>
+    </method>
+
+    <!-- Method2: foo -->
+    <method name="Method2">
+      <arg name="greeting" direction="in" type="s"/>
+      <arg name="response" direction="out" type="s"/>
+    </method>
+
+    <!--
+      BarSignal:
+      @blah: The docs for blah parameter.
+      @boo: The docs for boo parameter.
+
+      The docs for the actual signal.
+    -->
+    <signal name="BarSignal">
+      <!-- Non-Doc comment -->
+      <arg name="blah" type="s"/>
+      <arg name="boo" type="s"/>
+    </signal>
+
+    <!-- BazProperty: The docs for the property. -->
+    <property name="BazProperty" type="s" access="read"/>
+
+    <!-- Property2: Another property
+         This should be a new paragraph.
+    -->
+    <property name="Property2" type="s" access="read"/>
+
+    <!-- Property3:
+         First line.
+         This should NOT be a new paragraph.
+    -->
+    <property name="Property3" type="s" access="read"/>
+
+    <!-- Property4:  
+         First line. With trailing whitespace.  
+         Second line (same paragraph).  
+    -->
+    <property name="Property4" type="s" access="read"/>
+
+    <!-- Property5: Foo  
+         First line (second paragraph). With trailing whitespace.  
+         Second line (same paragraph).  
+<programlisting>
+1 program listing
+ 2 should include indented space
+  3
+   4
+    5
+</programlisting>
+    -->
+    <property name="Property5" type="s" access="read"/>
+
+
+    <!--
+      FancyProperty:
+      Here's some fancy use of XML inside the comment.
+      <variablelist>
+        <varlistentry>
+          <term><option>namespace</option></term>
+          <listitem>
+            <para>The namespace to use for generated code. In CamelCase format.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>output-prefix</option></term>
+          <listitem>
+            <para>
+              A prefix to use for all generated files. Defaults to <filename>generated</filename>.
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    -->
+    <property name="FancyProperty" type="s" access="read"/>
+  </interface>
+
+  <interface name="ChangingInterfaceV1">
+    <method name="FooMethod"/>
+    <method name="BarMethod"/>
+    <method name="BazMethod"/>
+    <signal name="FooSignal"/>
+    <signal name="BarSignal"/>
+    <signal name="BazSignal"/>
+  </interface>
+
+  <!-- ChangingInterfaceV2:
+  -->
+  <interface name="ChangingInterfaceV2">
+    <!--
+      NewSignalIn2:
+      @since: 2.0
+    -->
+    <signal name="NewSignalIn2"/>
+    <!--
+      NewMethodIn2:
+      @since: 2.0
+    -->
+    <method name="NewMethodIn2"/>
+
+    <!-- reverse order -->
+    <signal name="BazSignal"/>
+    <signal name="BarSignal"/>
+    <signal name="FooSignal"/>
+    <method name="BazMethod"/>
+    <method name="BarMethod"/>
+    <method name="FooMethod"/>
+  </interface>
+
+  <!-- ChangingInterfaceV10:
+  -->
+  <interface name="ChangingInterfaceV10">
+    <!--
+      AddedSignalIn10:
+      @since: 10.0
+    -->
+    <signal name="AddedSignalIn10"/>
+    <method name="AddedMethodIn10">
+      <annotation name="org.gtk.GDBus.Since" value="10.0"/>
+    </method>
+
+    <!--
+      NewSignalIn2:
+      @since: 2.0
+    -->
+    <signal name="NewSignalIn2"/>
+    <!--
+      NewMethodIn2:
+      @since: 2.0
+    -->
+    <method name="NewMethodIn2"/>
+
+    <!-- reverse order -->
+    <signal name="BazSignal"/>
+    <signal name="BarSignal"/>
+    <signal name="FooSignal"/>
+    <method name="BazMethod"/>
+    <method name="BarMethod"/>
+    <method name="FooMethod"/>
+  </interface>
+
+  <interface name="TestUglyCaseInterface">
+    <annotation name="org.gtk.GDBus.C.Name" value="TesT_ugly_CASE_Interface"/>
+
+    <method name="GetiSCSIServers">
+      <annotation name="org.gtk.GDBus.C.Name" value="Get_iSCSI_Servers"/>
+    </method>
+
+    <signal name="serversUPDATEDNOW">
+      <annotation name="org.gtk.GDBus.C.Name" value="Servers_UPDATED_NOW"/>
+    </signal>
+
+    <property name="UGLYNAME" type="i" access="readwrite">
+      <annotation name="org.gtk.GDBus.C.Name" value="UGLY_NAME"/>
+    </property>
+  </interface>
+
+  <!--
+    OldieInterface:
+    @short_description: A an example of an deprecated interface
+
+    This is an example of a deprecated interface.
+    -->
+  <interface name="OldieInterface">
+    <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
+
+    <method name="Foo">
+      <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
+    </method>
+
+    <signal name="Bar">
+      <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
+    </signal>
+
+    <property name="Bat" type="i" access="readwrite">
+      <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
+    </property>
+  </interface>
+
+  <interface name="FDPassing">
+    <method name="HelloFD">
+      <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
+      <arg name="greeting" direction="in" type="s"/>
+      <arg name="response" direction="out" type="s"/>
+    </method>
+  </interface>
+
+  <interface name="Naming">
+    <property name="Type" type="i" access="readwrite"/>
+  </interface>
+
+</node>
diff --git a/tests/dbusgen/test-codegen.xml.vala-expected b/tests/dbusgen/test-codegen.xml.vala-expected
new file mode 100644
index 000000000..c4bb185f7
--- /dev/null
+++ b/tests/dbusgen/test-codegen.xml.vala-expected
@@ -0,0 +1,169 @@
+[DBus (name = "org.project.Bar", timeout = 120000)]
+public interface OrgProjectBar : GLib.Object {
+       public abstract void hello_world (string greeting, out string response) throws GLib.DBusError, 
GLib.IOError;
+       public abstract void test_primitive_types (char val_byte, bool val_boolean, int16 val_int16, uint16 
val_uint16, int32 val_int32, uint32 val_uint32, int64 val_int64, uint64 val_uint64, double val_double, string 
val_string, GLib.ObjectPath val_objpath, string val_signature, char[] val_bytestring, out char ret_byte, out 
bool ret_boolean, out int16 ret_int16, out uint16 ret_uint16, out int32 ret_int32, out uint32 ret_uint32, out 
int64 ret_int64, out uint64 ret_uint64, out double ret_double, out string ret_string, out GLib.ObjectPath 
ret_objpath, out string ret_signature, out char[] ret_bytestring) throws GLib.DBusError, GLib.IOError;
+       public abstract void test_non_primitive_types (GLib.HashTable<string,string> dict_s_to_s, [DBus 
(signature = "a{s(ii)}")] GLib.Variant dict_s_to_pairs, [DBus (signature = "(iss)")] GLib.Variant a_struct, 
string[] array_of_strings, out string[] ret_array_of_strings, GLib.ObjectPath[] array_of_objpaths, out 
GLib.ObjectPath[] ret_array_of_objpaths, string[] array_of_signatures, out string[] ret_array_of_signatures, 
[DBus (signature = "aay")] GLib.Variant array_of_bytestrings, [DBus (signature = "aay")] out GLib.Variant 
ret_array_of_bytestrings, out char[] result) throws GLib.DBusError, GLib.IOError;
+       public abstract void request_signal_emission (int32 which_one) throws GLib.DBusError, GLib.IOError;
+       public abstract void request_multi_property_mods () throws GLib.DBusError, GLib.IOError;
+       public abstract void unimplemented_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void property_cancellation () throws GLib.DBusError, GLib.IOError;
+       public abstract char y { get; set; }
+       public abstract bool b { get; set; }
+       public abstract int16 n { get; set; }
+       public abstract uint16 q { get; set; }
+       public abstract int32 i { get; set; }
+       public abstract uint32 u { get; set; }
+       public abstract int64 x { get; set; }
+       public abstract uint64 t { get; set; }
+       public abstract double d { get; set; }
+       public abstract string s { owned get; set; }
+       public abstract GLib.ObjectPath o { owned get; set; }
+       public abstract string g { owned get; set; }
+       public abstract char[] ay { owned get; set; }
+       public abstract string[] @as { owned get; set; }
+       [DBus (signature = "aay")]
+       public abstract GLib.Variant aay { owned get; set; }
+       public abstract GLib.ObjectPath[] ao { owned get; set; }
+       public abstract string[] ag { owned get; set; }
+       public abstract string finally_normal_name { owned get; set; }
+       public abstract string readonly_property { owned get; }
+       public abstract string writeonly_property { set; }
+       public abstract int32 unset_i { get; set; }
+       public abstract double unset_d { get; set; }
+       public abstract string unset_s { owned get; set; }
+       public abstract GLib.ObjectPath unset_o { owned get; set; }
+       public abstract string unset_g { owned get; set; }
+       public abstract char[] unset_ay { owned get; set; }
+       public abstract string[] unset_as { owned get; set; }
+       public abstract GLib.ObjectPath[] unset_ao { owned get; set; }
+       public abstract string[] unset_ag { owned get; set; }
+       [DBus (signature = "(idsogayasaoag)")]
+       public abstract GLib.Variant unset_struct { owned get; set; }
+       public signal void test_signal (int32 val_int32, string[] array_of_strings, [DBus (signature = 
"aay")] GLib.Variant array_of_bytestrings, [DBus (signature = "a{s(ii)}")] GLib.Variant dict_s_to_pairs);
+       public signal void another_signal (string word);
+}
+[DBus (name = "org.project.Bar.Frobnicator", timeout = 120000)]
+public interface OrgProjectBarFrobnicator : GLib.Object {
+       public abstract void random_method () throws GLib.DBusError, GLib.IOError;
+}
+[DBus (name = "org.project.Baz", timeout = 120000)]
+public interface OrgProjectBaz : GLib.Object {
+}
+[DBus (name = "com.acme.Coyote", timeout = 120000)]
+public interface ComAcmeCoyote : GLib.Object {
+       public abstract void run () throws GLib.DBusError, GLib.IOError;
+       public abstract void sleep () throws GLib.DBusError, GLib.IOError;
+       public abstract void attack () throws GLib.DBusError, GLib.IOError;
+       public abstract string mood { owned get; }
+       public signal void surprised ();
+}
+[CCode (cname = "Rocket123")]
+[DBus (name = "com.acme.Rocket", timeout = 120000)]
+public interface ComAcmeRocket : GLib.Object {
+       [CCode (cname = "ignite_xyz")]
+       public abstract void ignite () throws GLib.DBusError, GLib.IOError;
+       [CCode (cname = "speed-xyz")]
+       public abstract double speed { get; }
+       [DBus (signature = "(ddd)")]
+       public abstract GLib.Variant direction { owned get; }
+       public abstract string type { owned get; }
+       [CCode (cname = "exploded-xyz")]
+       public signal void exploded ();
+}
+[DBus (name = "org.project.Bat", timeout = 120000)]
+public interface OrgProjectBat : GLib.Object {
+       public abstract void force_method ([DBus (signature = "i")] GLib.Variant force_in_i, [DBus (signature 
= "s")] GLib.Variant force_in_s, [DBus (signature = "ay")] GLib.Variant force_in_ay, [DBus (signature = 
"(i)")] GLib.Variant force_in_struct, [DBus (signature = "i")] out GLib.Variant force_out_i, [DBus (signature 
= "s")] out GLib.Variant force_out_s, [DBus (signature = "ay")] out GLib.Variant force_out_ay, [DBus 
(signature = "(i)")] out GLib.Variant force_out_struct) throws GLib.DBusError, GLib.IOError;
+       [DBus (signature = "i")]
+       public abstract GLib.Variant force_i { owned get; set; }
+       [DBus (signature = "s")]
+       public abstract GLib.Variant force_s { owned get; set; }
+       [DBus (signature = "ay")]
+       public abstract GLib.Variant force_ay { owned get; set; }
+       [DBus (signature = "(i)")]
+       public abstract GLib.Variant force_struct { owned get; set; }
+       public signal void force_signal ([DBus (signature = "i")] GLib.Variant force_i, [DBus (signature = 
"s")] GLib.Variant force_s, [DBus (signature = "ay")] GLib.Variant force_ay, [DBus (signature = "(i)")] 
GLib.Variant force_struct);
+}
+[DBus (name = "org.project.Authorize", timeout = 120000)]
+public interface OrgProjectAuthorize : GLib.Object {
+       public abstract void check_not_authorized () throws GLib.DBusError, GLib.IOError;
+       public abstract void check_authorized () throws GLib.DBusError, GLib.IOError;
+       public abstract void check_not_authorized_from_object () throws GLib.DBusError, GLib.IOError;
+}
+[DBus (name = "org.project.MethodThreads", timeout = 120000)]
+public interface OrgProjectMethodThreads : GLib.Object {
+       public abstract void get_self (out string self_pointer) throws GLib.DBusError, GLib.IOError;
+}
+[DBus (name = "org.project.InlineDocs", timeout = 120000)]
+public interface OrgProjectInlineDocs : GLib.Object {
+       public abstract void foo_method (string greeting, out string response) throws GLib.DBusError, 
GLib.IOError;
+       public abstract void method2 (string greeting, out string response) throws GLib.DBusError, 
GLib.IOError;
+       public abstract string baz_property { owned get; }
+       public abstract string property2 { owned get; }
+       public abstract string property3 { owned get; }
+       public abstract string property4 { owned get; }
+       public abstract string property5 { owned get; }
+       public abstract string fancy_property { owned get; }
+       public signal void bar_signal (string blah, string boo);
+}
+[DBus (name = "ChangingInterfaceV1", timeout = 120000)]
+public interface ChangingInterfaceV1 : GLib.Object {
+       public abstract void foo_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void bar_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void baz_method () throws GLib.DBusError, GLib.IOError;
+       public signal void foo_signal ();
+       public signal void bar_signal ();
+       public signal void baz_signal ();
+}
+[DBus (name = "ChangingInterfaceV2", timeout = 120000)]
+public interface ChangingInterfaceV2 : GLib.Object {
+       public abstract void new_method_in2 () throws GLib.DBusError, GLib.IOError;
+       public abstract void baz_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void bar_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void foo_method () throws GLib.DBusError, GLib.IOError;
+       public signal void new_signal_in2 ();
+       public signal void baz_signal ();
+       public signal void bar_signal ();
+       public signal void foo_signal ();
+}
+[DBus (name = "ChangingInterfaceV10", timeout = 120000)]
+public interface ChangingInterfaceV10 : GLib.Object {
+       [Version (since = "10.0")]
+       public abstract void added_method_in10 () throws GLib.DBusError, GLib.IOError;
+       public abstract void new_method_in2 () throws GLib.DBusError, GLib.IOError;
+       public abstract void baz_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void bar_method () throws GLib.DBusError, GLib.IOError;
+       public abstract void foo_method () throws GLib.DBusError, GLib.IOError;
+       public signal void added_signal_in10 ();
+       public signal void new_signal_in2 ();
+       public signal void baz_signal ();
+       public signal void bar_signal ();
+       public signal void foo_signal ();
+}
+[CCode (cname = "TesT_ugly_CASE_Interface")]
+[DBus (name = "TestUglyCaseInterface", timeout = 120000)]
+public interface TestUglyCaseInterface : GLib.Object {
+       [CCode (cname = "Get_iSCSI_Servers")]
+       public abstract void GetiSCSIServers () throws GLib.DBusError, GLib.IOError;
+       [CCode (cname = "UGLY_NAME")]
+       public abstract int32 UGLYNAME { get; set; }
+       [CCode (cname = "Servers_UPDATED_NOW")]
+       public signal void serversUPDATEDNOW ();
+}
+[DBus (name = "OldieInterface", timeout = 120000)]
+[Version (deprecated = true)]
+public interface OldieInterface : GLib.Object {
+       [Version (deprecated = true)]
+       public abstract void foo () throws GLib.DBusError, GLib.IOError;
+       [Version (deprecated = true)]
+       public abstract int32 bat { get; set; }
+       [Version (deprecated = true)]
+       public signal void bar ();
+}
+[DBus (name = "FDPassing", timeout = 120000)]
+public interface FDPassing : GLib.Object {
+       public abstract void HelloFD (string greeting, out string response) throws GLib.DBusError, 
GLib.IOError;
+}
+[DBus (name = "Naming", timeout = 120000)]
+public interface Naming : GLib.Object {
+       public abstract int32 type { get; set; }
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]