1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
int
my_com_netsplit_Nih_Test_property_get (NihDBusObject * object,
NihDBusMessage * message,
DBusMessageIter *iter)
{
DBusMessageIter variter;
DBusMessageIter value_iter;
const char * value_item0;
uint32_t value_item1;
MyProperty * value;
nih_assert (object != NULL);
nih_assert (message != NULL);
nih_assert (iter != NULL);
/* Call the handler function */
if (my_get_property (object->data, message, &value) < 0)
return -1;
/* Append a variant onto the message to contain the property value. */
if (! dbus_message_iter_open_container (iter, DBUS_TYPE_VARIANT, "(su)", &variter)) {
nih_error_raise_no_memory ();
return -1;
}
/* Marshal a structure onto the message */
if (! dbus_message_iter_open_container (&variter, DBUS_TYPE_STRUCT, NULL, &value_iter)) {
dbus_message_iter_abandon_container (iter, &variter);
nih_error_raise_no_memory ();
return -1;
}
value_item0 = value->item0;
/* Marshal a char * onto the message */
if (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_item0)) {
dbus_message_iter_abandon_container (&variter, &value_iter);
dbus_message_iter_abandon_container (iter, &variter);
nih_error_raise_no_memory ();
return -1;
}
value_item1 = value->item1;
/* Marshal a uint32_t onto the message */
if (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_UINT32, &value_item1)) {
dbus_message_iter_abandon_container (&variter, &value_iter);
dbus_message_iter_abandon_container (iter, &variter);
nih_error_raise_no_memory ();
return -1;
}
if (! dbus_message_iter_close_container (&variter, &value_iter)) {
dbus_message_iter_abandon_container (iter, &variter);
nih_error_raise_no_memory ();
return -1;
}
/* Finish the variant */
if (! dbus_message_iter_close_container (iter, &variter)) {
nih_error_raise_no_memory ();
return -1;
}
return 0;
}
|