|
@@ -4,6 +4,7 @@ import os
|
4
|
4
|
import copy
|
5
|
5
|
from importlib.machinery import SourceFileLoader
|
6
|
6
|
|
|
7
|
+
|
7
|
8
|
##@brief Class designed to handle a hook's callback with a priority
|
8
|
9
|
class DecoratedWrapper(object):
|
9
|
10
|
##@brief Constructor
|
|
@@ -21,6 +22,10 @@ class DecoratedWrapper(object):
|
21
|
22
|
def __call__(self, hook_name, caller, payload):
|
22
|
23
|
return self._hook(hook_name, caller, payload)
|
23
|
24
|
|
|
25
|
+ def __str__(self):
|
|
26
|
+ return "<LodelHook '%s' priority = %s>" % (
|
|
27
|
+ self._hook.__name__, self._priority)
|
|
28
|
+
|
24
|
29
|
##@brief Decorator designed to register hook's callbacks
|
25
|
30
|
#
|
26
|
31
|
# @note Decorated functions are expected to take 3 arguments :
|
|
@@ -58,8 +63,12 @@ class LodelHook(object):
|
58
|
63
|
# @return modified payload
|
59
|
64
|
@classmethod
|
60
|
65
|
def call_hook(cls, hook_name, caller, payload):
|
|
66
|
+ from lodel import logger
|
|
67
|
+ logger.info("Calling hook '%s'" % hook_name)
|
61
|
68
|
if hook_name in cls._hooks:
|
62
|
69
|
for hook in cls._hooks[hook_name]:
|
|
70
|
+ logger.info("Lodel hook '%s' calls %s" % (
|
|
71
|
+ hook_name, hook))
|
63
|
72
|
payload = hook(hook_name, caller, payload)
|
64
|
73
|
return payload
|
65
|
74
|
|