D-Bus interface macro improvements
* Descriptions for methods, signals and arguments * Use real boolean in method descriptor * Use dedicated macros for in and out params. The direction argument is always a C constant.
This commit is contained in:
parent
fe774ef28d
commit
d88e11f203
|
@ -205,20 +205,20 @@ void emit_studio_disappeared()
|
|||
signal_new_valist(g_dbus_connection, CONTROL_OBJECT_PATH, INTERFACE_NAME, "StudioDisappeared", DBUS_TYPE_INVALID);
|
||||
}
|
||||
|
||||
METHOD_ARGS_BEGIN(GetStudioList)
|
||||
METHOD_ARG_DESCRIBE("studio_list", "a(sa{sv})", DIRECTION_OUT)
|
||||
METHOD_ARGS_BEGIN(GetStudioList, "Get list of studios")
|
||||
METHOD_ARG_DESCRIBE_OUT("studio_list", "a(sa{sv})", "List of studios, name and properties")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHOD_ARGS_BEGIN(LoadStudio)
|
||||
METHOD_ARG_DESCRIBE("studio_name", "s", DIRECTION_IN)
|
||||
METHOD_ARG_DESCRIBE("options", "a{sv}", DIRECTION_IN)
|
||||
METHOD_ARGS_BEGIN(LoadStudio, "Load studio")
|
||||
METHOD_ARG_DESCRIBE_IN("studio_name", "s", "Name of studio to load")
|
||||
METHOD_ARG_DESCRIBE_IN("options", "a{sv}", "Load options")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHOD_ARGS_BEGIN(GetApplicationList)
|
||||
METHOD_ARG_DESCRIBE("applications", "a(sa{sv})", DIRECTION_OUT)
|
||||
METHOD_ARGS_BEGIN(GetApplicationList, "Get list of applications that can be launched")
|
||||
METHOD_ARG_DESCRIBE_OUT("applications", "a(sa{sv})", "List of applications, name and properties")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHOD_ARGS_BEGIN(Exit)
|
||||
METHOD_ARGS_BEGIN(Exit, "Tell ladish D-Bus service to exit")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHODS_BEGIN
|
||||
|
@ -228,10 +228,10 @@ METHODS_BEGIN
|
|||
METHOD_DESCRIBE(Exit, ladish_exit)
|
||||
METHODS_END
|
||||
|
||||
SIGNAL_ARGS_BEGIN(StudioAppeared)
|
||||
SIGNAL_ARGS_BEGIN(StudioAppeared, "Studio D-Bus object appeared")
|
||||
SIGNAL_ARGS_END
|
||||
|
||||
SIGNAL_ARGS_BEGIN(StudioDisappeared)
|
||||
SIGNAL_ARGS_BEGIN(StudioDisappeared, "Studio D-Bus object disappeared")
|
||||
SIGNAL_ARGS_END
|
||||
|
||||
SIGNALS_BEGIN
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
* LADI Session Handler (ladish)
|
||||
*
|
||||
* Copyright (C) 2008 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008 Juuso Alasuutari <juuso.alasuutari@gmail.com>
|
||||
*
|
||||
**************************************************************************
|
||||
|
@ -89,7 +89,7 @@ introspection_new(object_path_t *path)
|
|||
write_buf(" <arg name=\"%s\" type=\"%s\" direction=\"%s\" />\n",
|
||||
method_arg_ptr->name,
|
||||
method_arg_ptr->type,
|
||||
method_arg_ptr->direction == DIRECTION_IN ? "in" : "out");
|
||||
method_arg_ptr->direction_in ? "in" : "out");
|
||||
}
|
||||
write_buf(" </method>\n");
|
||||
}
|
||||
|
@ -191,8 +191,8 @@ introspection_handler(const interface_t *interface,
|
|||
* Interface description.
|
||||
*/
|
||||
|
||||
METHOD_ARGS_BEGIN(Introspect)
|
||||
METHOD_ARG_DESCRIBE("xml_data", "s", DIRECTION_OUT)
|
||||
METHOD_ARGS_BEGIN(Introspect, "Get introspection XML")
|
||||
METHOD_ARG_DESCRIBE_OUT("xml_data", "s", "XML description of the object")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHODS_BEGIN
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
* LADI Session Handler (ladish)
|
||||
*
|
||||
* Copyright (C) 2008 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008 Juuso Alasuutari <juuso.alasuutari@gmail.com>
|
||||
*
|
||||
**************************************************************************
|
||||
|
@ -33,9 +33,6 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#define DIRECTION_OUT (0)
|
||||
#define DIRECTION_IN (1)
|
||||
|
||||
struct _method_msg
|
||||
{
|
||||
const service_t *service;
|
||||
|
@ -59,7 +56,7 @@ struct _method_arg
|
|||
{
|
||||
const char *name;
|
||||
const char *type;
|
||||
const int direction; /* 0 == out, 1 == in */
|
||||
const bool direction_in; /* false == out, true == in */
|
||||
};
|
||||
|
||||
struct _method
|
||||
|
@ -164,22 +161,27 @@ method_iter_get_dict_entry(DBusMessageIter *iter,
|
|||
int *type_ptr,
|
||||
int *size_ptr);
|
||||
|
||||
#define METHOD_ARGS_BEGIN(method_name) \
|
||||
#define METHOD_ARGS_BEGIN(method_name, descr) \
|
||||
static const struct _method_arg method_name ## _args_dtor[] = \
|
||||
{
|
||||
|
||||
#define METHOD_ARG_DESCRIBE(arg_name, arg_type, arg_direction) \
|
||||
#define METHOD_ARG_DESCRIBE_IN(arg_name, arg_type, descr) \
|
||||
{ \
|
||||
.name = arg_name, \
|
||||
.type = arg_type, \
|
||||
.direction = arg_direction \
|
||||
.direction_in = true \
|
||||
},
|
||||
|
||||
#define METHOD_ARG_DESCRIBE_OUT(arg_name, arg_type, descr) \
|
||||
{ \
|
||||
.name = arg_name, \
|
||||
.type = arg_type, \
|
||||
.direction_in = false \
|
||||
},
|
||||
|
||||
#define METHOD_ARGS_END \
|
||||
{ \
|
||||
.name = NULL, \
|
||||
.type = NULL, \
|
||||
.direction = 0 \
|
||||
} \
|
||||
};
|
||||
|
||||
|
|
|
@ -68,11 +68,11 @@ signal_new_valist(
|
|||
int type,
|
||||
...);
|
||||
|
||||
#define SIGNAL_ARGS_BEGIN(signal_name) \
|
||||
#define SIGNAL_ARGS_BEGIN(signal_name, descr) \
|
||||
static const struct _signal_arg signal_name ## _args_dtor[] = \
|
||||
{
|
||||
|
||||
#define SIGNAL_ARG_DESCRIBE(arg_name, arg_type) \
|
||||
#define SIGNAL_ARG_DESCRIBE(arg_name, arg_type, descr) \
|
||||
{ \
|
||||
.name = arg_name, \
|
||||
.type = arg_type \
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* LASH
|
||||
*
|
||||
* Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008 Juuso Alasuutari <juuso.alasuutari@gmail.com>
|
||||
* Copyright (C) 2008 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -39,6 +39,8 @@
|
|||
# include "lash/config.h"
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
|
||||
#define client_ptr ((lash_client_t *)(((object_path_t *)call->context)->context))
|
||||
|
||||
static void
|
||||
|
@ -667,10 +669,14 @@ lash_dbus_client_name_changed(method_call_t *call)
|
|||
|
||||
#undef client_ptr
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Interface methods.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
METHOD_ARGS_BEGIN(Save)
|
||||
METHOD_ARG_DESCRIBE("task_id", "t", DIRECTION_IN)
|
||||
METHOD_ARGS_END
|
||||
|
@ -699,8 +705,10 @@ METHOD_ARGS_END
|
|||
METHOD_ARGS_BEGIN(ClientNameChanged)
|
||||
METHOD_ARG_DESCRIBE("new_name", "s", DIRECTION_IN)
|
||||
METHOD_ARGS_END
|
||||
#endif
|
||||
|
||||
METHODS_BEGIN
|
||||
#if 0
|
||||
METHOD_DESCRIBE(Save, lash_dbus_save)
|
||||
METHOD_DESCRIBE(Load, lash_dbus_load)
|
||||
METHOD_DESCRIBE(LoadDataSet, lash_dbus_load_data_set)
|
||||
|
@ -708,6 +716,7 @@ METHODS_BEGIN
|
|||
METHOD_DESCRIBE(TrySave, lash_dbus_try_save)
|
||||
METHOD_DESCRIBE(TryPathChange, lash_dbus_try_path_change)
|
||||
METHOD_DESCRIBE(ClientNameChanged, lash_dbus_client_name_changed)
|
||||
#endif
|
||||
METHODS_END
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue