Просмотр исходного кода

Renamed ExecutingEventHandler to ImplementingEventHandler and fixed bug

Nuwan Goonasekera 7 лет назад
Родитель
Сommit
6d48e2104b
2 измененных файлов с 10 добавлено и 8 удалено
  1. 8 6
      cloudbridge/cloud/base/events.py
  2. 2 2
      cloudbridge/cloud/base/middleware.py

+ 8 - 6
cloudbridge/cloud/base/events.py

@@ -85,19 +85,21 @@ class ObservingEventHandler(InterceptingEventHandler):
             return None
 
 
-class ExecutingEventHandler(InterceptingEventHandler):
+class ImplementingEventHandler(InterceptingEventHandler):
 
     def __init__(self, event_pattern, priority, callback):
-        super(ExecutingEventHandler, self).__init__(event_pattern, priority,
-                                                    callback)
+        super(ImplementingEventHandler, self).__init__(event_pattern, priority,
+                                                       callback)
 
     def invoke(self, event_args, *args, **kwargs):
         result = self.callback(*args, **kwargs)
-        next_handler = event_args.get('next_handler')
+        next_handler = self._get_next_handler(event_args.get('event'))
         if next_handler:
+            event_args['next_handler'] = next_handler
             event_args['result'] = result
             next_handler.invoke(event_args, *args, **kwargs)
-            event_args.pop['result']
+            event_args.pop('result', None)
+            event_args.pop('next_handler', None)
         return result
 
 
@@ -175,7 +177,7 @@ class SimpleEventDispatcher(EventDispatcher):
         return handler
 
     def implement(self, event_pattern, priority, callback):
-        handler = ExecutingEventHandler(event_pattern, priority, callback)
+        handler = ImplementingEventHandler(event_pattern, priority, callback)
         self.subscribe(handler)
         return handler
 

+ 2 - 2
cloudbridge/cloud/base/middleware.py

@@ -4,7 +4,7 @@ import sys
 
 import six
 
-from ..base.events import ExecutingEventHandler
+from ..base.events import ImplementingEventHandler
 from ..base.events import InterceptingEventHandler
 from ..base.events import ObservingEventHandler
 from ..interfaces.events import EventHandler
@@ -42,7 +42,7 @@ def implement(event_pattern, priority):
         # Mark function as having an event_handler so we can discover it
         # The callback cannot be set to f as it is not bound yet and will be
         # set during auto discovery
-        f.__event_handler = ExecutingEventHandler(
+        f.__event_handler = ImplementingEventHandler(
             event_pattern, priority, None)
         return f
     return deco