e: add a way to retrieve all the living timers.

SVN revision: 59541
This commit is contained in:
Cedric BAIL 2011-05-19 15:24:39 +00:00
parent cbaf8dc984
commit f351c9e5ab
4 changed files with 47 additions and 0 deletions

View File

@ -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@

View File

@ -17,6 +17,7 @@ e_modapi_init(E_Module *m)
msgbus_lang_init(ifaces);
msgbus_desktop_init(ifaces);
msgbus_audit_init(ifaces);
return m;
}

View File

@ -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

View File

@ -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);
}
}