From f351c9e5abb945f5cdc893197a8a35d167107e6c Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 19 May 2011 15:24:39 +0000 Subject: [PATCH] e: add a way to retrieve all the living timers. SVN revision: 59541 --- src/modules/msgbus/Makefile.am | 1 + src/modules/msgbus/e_mod_main.c | 1 + src/modules/msgbus/e_mod_main.h | 1 + src/modules/msgbus/msgbus_audit.c | 44 +++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 src/modules/msgbus/msgbus_audit.c diff --git a/src/modules/msgbus/Makefile.am b/src/modules/msgbus/Makefile.am index 26b4f2877..a75f3b972 100644 --- a/src/modules/msgbus/Makefile.am +++ b/src/modules/msgbus/Makefile.am @@ -25,6 +25,7 @@ pkg_LTLIBRARIES = module.la module_la_SOURCES = e_mod_main.c \ e_mod_main.h \ msgbus_lang.c \ + msgbus_audit.c \ msgbus_desktop.c module_la_LIBADD = @e_libs@ @dlopen_libs@ diff --git a/src/modules/msgbus/e_mod_main.c b/src/modules/msgbus/e_mod_main.c index 2f651f43c..06ecac57b 100644 --- a/src/modules/msgbus/e_mod_main.c +++ b/src/modules/msgbus/e_mod_main.c @@ -17,6 +17,7 @@ e_modapi_init(E_Module *m) msgbus_lang_init(ifaces); msgbus_desktop_init(ifaces); + msgbus_audit_init(ifaces); return m; } diff --git a/src/modules/msgbus/e_mod_main.h b/src/modules/msgbus/e_mod_main.h index dc8ddc1d6..0afdd1565 100644 --- a/src/modules/msgbus/e_mod_main.h +++ b/src/modules/msgbus/e_mod_main.h @@ -12,5 +12,6 @@ EAPI int e_modapi_save (E_Module *m); /* sub-module initializers */ void msgbus_lang_init(Eina_Array *ifaces); void msgbus_desktop_init(Eina_Array *ifaces); +void msgbus_audit_init(Eina_Array *ifaces); #endif diff --git a/src/modules/msgbus/msgbus_audit.c b/src/modules/msgbus/msgbus_audit.c new file mode 100644 index 000000000..443a936eb --- /dev/null +++ b/src/modules/msgbus/msgbus_audit.c @@ -0,0 +1,44 @@ +#include "e_mod_main.h" + +static int _log_dom = -1; +#define DBG(...) EINA_LOG_DOM_DBG(_log_dom, __VA_ARGS__) +#define WARN(...) EINA_LOG_DOM_WARN(_log_dom, __VA_ARGS__) +#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__) +#define ERR(...) EINA_LOG_DOM_ERR(_log_dom, __VA_ARGS__) + +static DBusMessage* +cb_audit_timer_dump(E_DBus_Object *obj __UNUSED__, DBusMessage *msg) +{ + DBusMessage *reply; + char *tmp; + + tmp = ecore_timer_dump(); + if (!tmp) tmp = strdup("Not enable, recompile Ecore with ecore_timer_dump."); + + reply = dbus_message_new_method_return(msg); + dbus_message_append_args(reply, DBUS_TYPE_STRING, &tmp, DBUS_TYPE_INVALID); + + return reply; +} + +void msgbus_audit_init(Eina_Array *ifaces) +{ + E_DBus_Interface *iface; + + if (_log_dom == -1) + { + _log_dom = eina_log_domain_register("msgbus_audit", EINA_COLOR_BLUE); + if (_log_dom < 0) + EINA_LOG_ERR("could not register msgbus_audit log domain!"); + } + + iface = e_dbus_interface_new("org.enlightenment.wm.Audit"); + if (iface) + { + e_dbus_interface_method_add(iface, "Timers", "", "s", + cb_audit_timer_dump); + e_msgbus_interface_attach(iface); + eina_array_push(ifaces, iface); + } +} +