0
Я пытаюсь отправить массив этой структуры к серверу DBus:Отправить массив структуры, содержащей массив над DBus использование бойкого
typedef struct
{
guint arg1;
guchar msg[DTC_ACTION_PATH_LENGTH];
} DTC_ErrorMessage;
Вот функции, я работаю над:
gint fillMessage(GPtrArray **msg, DTC_ErrorMessage *data)
{
g_assert(NULL != msg);
g_assert(NULL == *msg);
g_assert(NULL != data);
*msg = g_ptr_array_new();
g_assert(NULL != *msg);
GValueArray *container = g_value_array_new(2); // struct of 2 elements
GValue v;
memset(&v, 0, sizeof(GValue));
// Insert first element of the struct
g_value_init(&v, G_TYPE_INT);
g_value_set_int(&v, data->arg1);
g_value_array_append(container, &v);
g_value_unset(&v);
// Add code here for the second element of the struct
g_ptr_array_add(*msg, (gpointer) container);
return 0;
}
вопросов:
- это правильный способ отправки сложных структур над DBus? Потому что это кажется мне очень «замысловатым».
- Как заполнить эту функцию, чтобы добавить второй элемент структуры?
Вы используете dbus-glib или gdbus? –
dbus-glib, забыл указать на это. – Cristiano