summaryrefslogtreecommitdiff
path: root/vendor/src/github.com/godbus/dbus/introspect/call.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/src/github.com/godbus/dbus/introspect/call.go')
-rw-r--r--vendor/src/github.com/godbus/dbus/introspect/call.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/src/github.com/godbus/dbus/introspect/call.go b/vendor/src/github.com/godbus/dbus/introspect/call.go
new file mode 100644
index 0000000000..4aca2ea63e
--- /dev/null
+++ b/vendor/src/github.com/godbus/dbus/introspect/call.go
@@ -0,0 +1,27 @@
+package introspect
+
+import (
+ "encoding/xml"
+ "github.com/godbus/dbus"
+ "strings"
+)
+
+// Call calls org.freedesktop.Introspectable.Introspect on a remote object
+// and returns the introspection data.
+func Call(o *dbus.Object) (*Node, error) {
+ var xmldata string
+ var node Node
+
+ err := o.Call("org.freedesktop.DBus.Introspectable.Introspect", 0).Store(&xmldata)
+ if err != nil {
+ return nil, err
+ }
+ err = xml.NewDecoder(strings.NewReader(xmldata)).Decode(&node)
+ if err != nil {
+ return nil, err
+ }
+ if node.Name == "" {
+ node.Name = string(o.Path())
+ }
+ return &node, nil
+}