mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-11-04 07:32:55 +00:00 
			
		
		
		
	Use fresh messaging instances for each event handler
This commit is contained in:
		@@ -1,9 +1,11 @@
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
from messaging import Messaging
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventHandlerBase:
 | 
			
		||||
    def __init__(self, messaging, anchor):
 | 
			
		||||
        self.messaging = messaging
 | 
			
		||||
    def __init__(self, anchor):
 | 
			
		||||
        self.messaging = Messaging()
 | 
			
		||||
        self.anchor = anchor
 | 
			
		||||
        self.messaging.subscribe(self.anchor)
 | 
			
		||||
        self.subscriptions = {self.anchor}
 | 
			
		||||
 
 | 
			
		||||
@@ -85,10 +85,10 @@ class LoginHandler(EventHandlerBase):
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    messaging = Messaging()
 | 
			
		||||
    anchor_a = ChangeCaseHandler(messaging, 'anchor_a')
 | 
			
		||||
    anchor_b = Rot13Handler(messaging, 'anchor_b')
 | 
			
		||||
    anchor_c = ReverseHandler(messaging, 'anchor_c')
 | 
			
		||||
    anchor_webide = SourceCodeEventHandler(messaging, 'anchor_webide', 'login_component.py', 'login')
 | 
			
		||||
    anchor_terminado = TerminadoEventHandler(messaging, 'anchor_terminado', 'terminado')
 | 
			
		||||
    anchor_a = ChangeCaseHandler('anchor_a')
 | 
			
		||||
    anchor_b = Rot13Handler('anchor_b')
 | 
			
		||||
    anchor_c = ReverseHandler('anchor_c')
 | 
			
		||||
    anchor_webide = SourceCodeEventHandler('anchor_webide', 'login_component.py', 'login')
 | 
			
		||||
    anchor_terminado = TerminadoEventHandler('anchor_terminado', 'terminado')
 | 
			
		||||
    IOLoop.instance().start()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@ from event_handler_base import EventHandlerBase
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SourceCodeEventHandler(EventHandlerBase, SupervisorMixin):
 | 
			
		||||
    def __init__(self, messaging, anchor, filename, process_name=None):
 | 
			
		||||
        super().__init__(messaging, anchor)
 | 
			
		||||
    def __init__(self, anchor, filename, process_name=None):
 | 
			
		||||
        super().__init__(anchor)
 | 
			
		||||
        self.working_directory = LOGIN_APP_DIR
 | 
			
		||||
        self.filename = filename
 | 
			
		||||
        self.language = map_file_extension_to_language(filename)
 | 
			
		||||
 
 | 
			
		||||
@@ -4,8 +4,8 @@ from event_handler_base import EventHandlerBase
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class StatefulEventHandler(EventHandlerBase):
 | 
			
		||||
    def __init__(self, messaging, anchor, event_handler_function):
 | 
			
		||||
        super().__init__(messaging, anchor)
 | 
			
		||||
    def __init__(self, anchor, event_handler_function):
 | 
			
		||||
        super().__init__(anchor)
 | 
			
		||||
        self.event_handler_function = event_handler_function
 | 
			
		||||
        self.generator = None
 | 
			
		||||
        self.subscribe('reset')
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@ from config import TERMINADO_DIR
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TerminadoEventHandler(EventHandlerBase, SupervisorMixin):
 | 
			
		||||
    def __init__(self, messaging, anchor, process_name):
 | 
			
		||||
        super().__init__(messaging, anchor)
 | 
			
		||||
    def __init__(self, anchor, process_name):
 | 
			
		||||
        super().__init__(anchor)
 | 
			
		||||
        self.working_directory = TERMINADO_DIR
 | 
			
		||||
        self.process_name = process_name
 | 
			
		||||
        self.setup_terminado_server()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user