Example interface YAML file

We are defining a YAML file format for dbus interfaces, from which
we will generate documentation and client/server bindings for the
sdbus++ library.  This is a proposed example definition for the
net.poettering.Calculator interface.

Change-Id: Ib7ff063eb00e9fd801d945eaa146801ebd6fdeb0
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/tools/example/net/poettering/Calculator.interface.yaml b/tools/example/net/poettering/Calculator.interface.yaml
new file mode 100644
index 0000000..2c288b6
--- /dev/null
+++ b/tools/example/net/poettering/Calculator.interface.yaml
@@ -0,0 +1,62 @@
+description: >
+    An example interface originally described as part of the announcment
+    of new sd-bus interfaces at:
+        http://0pointer.net/blog/the-new-sd-bus-api-of-systemd.html
+methods:
+    - name: Multiply
+      description: >
+        Multiplies two integers 'x' and 'y' and returns the result.
+      parameters:
+        - name: x
+          type: integer
+          description: >
+            The first integer to multiply.
+        - name: y
+          type: integer
+          description: >
+            The second integer to multiply.
+          default: 1
+      returns:
+        - name: z
+          type: integer
+          description: >
+            The result of (x*y).
+    - name: Divide
+      description: >
+        Divides two integers 'x' and 'y' and returns the result.
+      parameters:
+        - name: x
+          type: integer
+          description: >
+            The first integer to divide.
+        - name: y
+          type: integer
+          description: >
+            The second integer to divide.
+          default: 1
+      returns:
+        - name: z
+          type: integer
+          description: >
+            The result of (x/y).
+      errors:
+        - self.DivisionByZero
+    - name: Clear
+      description: >
+        Reset the LastResult property to zero.
+properties:
+    - name: LastResult
+      type: integer
+      default: 0
+      description: >
+        The result of the most recent calculation.
+signals:
+    - name: Cleared
+      description: >
+        Signal indicating the LastReset property has been set to zero by the
+        'Clear' method.
+      properties:
+        - type: integer
+          description: >
+            Value of LastReset prior to Clear.
+