diff options
author | Vincent Vinet <vince.vinet@gmail.com> | 2009-12-04 05:06:49 (GMT) |
---|---|---|
committer | Vincent Vinet <vince.vinet@gmail.com> | 2009-12-06 04:06:40 (GMT) |
commit | 8acd9095e8f32ee20a6c4cd105d12a133fa9f346 (patch) | |
tree | ec24b60f26bde5eaf92c8bb8495deb733ab2cb69 /tutorius/engine.py | |
parent | 3550e7a3feac8726e4747457e14932e6010b397b (diff) |
Add Event Sources: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
Diffstat (limited to 'tutorius/engine.py')
-rw-r--r-- | tutorius/engine.py | 11 |
1 files changed, 4 insertions, 7 deletions
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 |