From 8acd9095e8f32ee20a6c4cd105d12a133fa9f346 Mon Sep 17 00:00:00 2001 From: Vincent Vinet Date: Fri, 04 Dec 2009 05:06:49 +0000 Subject: Add Event Sources: - Add source property in Action and EventFilter - Change TPropContainer contructor to accept keyword arguments and set properties that were given - Change every single TPropContainer subclass constructor to accept kwargs and pass them on to super init - Add a "null" option for TStringProperty Use Event Sources: - Make the probe require a source property to install or subscribe - Have ProbeProxy install and subscribe return a prefixed address - Make update, uninstall and unsubsribe extract the prefix from the address - Have the TutorialRunner set a source on actions/events before installing/subscribing instead of setting current activity on ProbeManager Test Event Sources: - Change the tests according to the new constructors and behaviors --- (limited to 'tutorius/engine.py') diff --git a/tutorius/engine.py b/tutorius/engine.py index 198fa11..c0769b5 100644 --- a/tutorius/engine.py +++ b/tutorius/engine.py @@ -77,14 +77,9 @@ class TutorialRunner(object): #Temp FIX until event/actions have an activity id self._activity_id = None - #Temp FIX until event, actions have an activity id - def setCurrentActivity(self): - self._pM.currentActivity = self._activity_id - ########################################################################### # Incoming messages def start(self): - self.setCurrentActivity() #Temp Hack until activity in events/actions self.enterState(self._tutorial.INIT) def stop(self): @@ -141,6 +136,8 @@ class TutorialRunner(object): # Send all the event registration for (event_name, (event, next_state)) in transitions.items(): + if hasattr(event, "source") and not event.source: + event.source = self._activity_id self._pM.subscribe(event, save_args(self._handleEvent, next_state), save_args(self.event_subscribed, event_name), @@ -153,7 +150,6 @@ class TutorialRunner(object): ########################################################################### # Helper functions def _execute_stop(self): - self.setCurrentActivity() #Temp Hack until activity in events/actions self._teardownState() self._state = None self._runner_state = RUNNER_STATE_IDLE @@ -253,6 +249,8 @@ class TutorialRunner(object): for (action_name, action) in actions.items(): LOGGER.debug("TutorialRunner :: Installed action %s"%(action_name)) + if hasattr(action, "source") and not action.source: + action.source = self._activity_id self._pM.install(action, save_args(self.action_installed, action_name), save_args(self.install_error, action_name)) @@ -269,7 +267,6 @@ class TutorialRunner(object): @param state_name The name of the state to enter in """ - self.setCurrentActivity() #Temp Hack until activity in events/actions # Set the runner state to actions setup self._runner_state = RUNNER_STATE_SETUP_ACTIONS -- cgit v0.9.1