Commit 9e10d3ac authored by Devaev Maxim's avatar Devaev Maxim

Added signal tracing, calls stack trace

parent 1d298cf1
......@@ -81,13 +81,24 @@ class ActionObject(CustomObject) :
##### Private decorators #####
def tracer(function) :
def tracer(function, statics_list=[0]) :
def wrapper(self, *args_list, **kwargs_dict) :
return_value = function(self, *args_list, **kwargs_dict)
if config.value(config.APPLICATION_SECTION, "log_level") == const.LOG_LEVEL_DEBUG :
logger.debug("Called \"%s::%s\" with args (%s, %s) --> %s" % (self.__class__.__name__, function.__name__,
str(args_list), str(kwargs_dict), str(return_value) ))
return return_value
logger.debug("%s%s %s::%s" % ( " "*statics_list[0],
str((function.__dict__.has_key("_dbus_is_method") and "Called method") or
(function.__dict__.has_key("_dbus_is_signal") and "Emited signal")),
self._object_path, dbus_tools.joinMethod(function._dbus_interface, function.__name__) ))
statics_list[0] += 1
return_value = function(self, *args_list, **kwargs_dict)
statics_list[0] -= 1
logger.debug("%s... executed as %s::%s(%s, %s) --> %s" % ( " "*statics_list[0],
self.__class__.__name__, function.__name__, str(args_list), str(kwargs_dict), str(return_value) ))
return return_value
else :
return function(self, *args_list, **kwargs_dict)
wrapper.__name__ = function.__name__
wrapper.__dict__ = function.__dict__
......@@ -118,7 +129,7 @@ def actionsMethod(interface_name) :
def customSignal(interface_name) :
def decorator(function) :
return dbus.service.signal(interface_name)(function)
return tracer(dbus.service.signal(interface_name)(function))
return decorator
def functionSignal(interface_name) :
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment