]> git.ipfire.org Git - thirdparty/libvirt.git/commit
Support passing dict by reference for dbus messages
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 9 Sep 2014 14:19:58 +0000 (15:19 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 24 Sep 2014 14:29:22 +0000 (15:29 +0100)
commit88a2dc1f4c58060d4add0e2ea305200f4fdffcb3
tree3d174491d70acccac5a9c0f3374920e2648e3e99
parentc75425734710181b19537c71da0c4d267f52f63c
Support passing dict by reference for dbus messages

Currently DBus dict values must be passed inline

   virDBusMessageEncode("a{ss}",
                        3,
                        "key1", "val1",
                        "key2", "val2",
                        "key3", "val3");
   virDBusMessageDecode("a{ss}",
                        3,
                        &key1, &val1,
                        &key2, &val2,
                        &key3, &val3);

This allows them to be passed by reference

   const char **dictin = {
      "key1", "val1",
      "key2", "val2",
      "key3", "val3"
   };
   char **dictout;
   size_t ndictout;

   virDBusMessageEncode("a&{ss}",
                        ARRAY_CARDINALITY(dict) / 2,
                        dictin);
   virDBusMessageDecode("a&{ss}",
                        &ndictout,
                        &dictout);

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/util/virdbus.c
src/util/virstring.c
src/util/virstring.h
tests/virdbustest.c