1.常用简单结果返回
static int readvalue(sd_bus_message *m, void *misc, sd_bus_error *err)
{
return sd_bus_reply_method_return(m, "s", "HelloWorld!");
}
static const sd_bus_vtable vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("ReadValue", "a{sv}", "s", readvalue, SD_BUS_VTABLE_UNPRIVILEGED)
SD_BUS_VTABLE_END
};
2.复杂结构结果返回
const char *value[] = { 0x31, 0x32 };
static int readvalue(sd_bus_message *m, void *misc, sd_bus_error *err)
{
sd_bus_message *reply;
int r;
r = sd_bus_message_new_method_return(m, &reply);
if (r < 0) {
return r;
}
r = sd_bus_message_append_array(reply, 'y', value, 2);
if (r < 0) {
return r;
}
return sd_bus_send(g_bus, reply, NULL);
}
static const sd_bus_vtable vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("ReadVa