Changeset 1144:6f275136d765 for pida/core/service.py
- Timestamp:
- 04/29/08 10:51:47 (7 months ago)
- Files:
-
- 1 modified
-
pida/core/service.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pida/core/service.py
r1143 r1144 34 34 self.boss = boss 35 35 self.log.debug('Loading Service') 36 self.reg = Registry()37 36 38 37 def create_all(self): … … 41 40 {servicemanager.ServiceManager} 42 41 """ 43 44 self. _register_options_config(self.options_config)45 self. _register_events_config(self.events_config)46 self. _register_commands_config(self.commands_config)47 self. _register_feature_config(self.features_config)48 self. _register_actions_config(self.actions_config)42 43 self.options = self.options_config(self) 44 self.events = self.events_config(self) 45 self.commands = self.commands_config(self) 46 self.features = self.features_config(self) 47 self.actions = self.actions_config(self) 49 48 50 49 def subscribe_all(self): … … 81 80 82 81 ########## 83 # Options 84 85 def _register_options_config(self, config_cls): 86 instance = config_cls(self) 87 self.reg.register_plugin( 88 instance=instance, 89 singletons=(IOptions,) 90 ) 91 92 # Public Options API 93 def get_options(self): 94 return self.reg.get_singleton(IOptions) 95 82 # Options API 96 83 def get_option(self, name): 97 return self. get_options().get_option(name)84 return self.options.get_option(name) 98 85 99 86 def opt(self, name): 100 return self. get_options().get_value(name)87 return self.options.get_value(name) 101 88 102 89 def set_opt(self, name, value): 103 return self.get_options().set_value(name, value) 104 105 ########## 106 # Commands 107 108 def _register_commands_config(self, config_cls): 109 self.reg.register_plugin( 110 instance = config_cls(self), 111 singletons=(ICommands,) 112 ) 113 114 # Public Commands API 115 116 def _get_commands(self): 117 return self.reg.get_singleton(ICommands) 118 119 def cmd(self, commandname, *args, **kw): 120 if args: 121 raise TypeError( 122 _('You must call command %(cmd)s in service %(svc)s with named arguments') 123 % {'cmd':commandname, 'svc':self.get_name()}) 124 else: 125 return self._get_commands().call(commandname, **kw) 90 return self.options.set_value(name, value) 91 92 ########## 93 # Commands API 94 95 96 def cmd(self, commandname, **kw): 97 return self.commands.call(commandname, **kw) 126 98 127 99 ########## … … 129 101 130 102 # Private Events API 131 def _register_events_config(self, config_cls):132 self.reg.register_plugin(133 instance = config_cls(self),134 singletons=(IEvents,)135 )136 103 137 104 def _subscribe_foreign_events(self): 138 self. _get_events().subscribe_foreign_events()105 self.events.subscribe_foreign_events() 139 106 140 107 def _unsubscribe_foreign_events(self): 141 self. _get_events().unsubscribe_foreign_events()108 self.events.unsubscribe_foreign_events() 142 109 143 110 # Public Events API 144 def _get_events(self):145 return self.reg.get_singleton(IEvents)146 147 111 def get_event(self, name): 148 return self. _get_events().get(name)112 return self.events.get(name) 149 113 150 114 def subscribe_foreign_event(self, servicename, name, callback): … … 155 119 156 120 def subscribe_event(self, name, callback): 157 self. _get_events().subscribe_event(name, callback)121 self.events.subscribe_event(name, callback) 158 122 159 123 def unsubscribe_event(self, name, callback): 160 self._get_events().unsubscribe_event(name, callback) 161 124 self.events.unsubscribe_event(name, callback) 162 125 163 126 def emit(self, name, **kw): 164 self. _get_events().emit(name, **kw)127 self.events.emit(name, **kw) 165 128 166 129 ########## 167 130 # Features 168 131 169 def _register_feature_config(self, config_cls):170 self.reg.register_plugin(171 instance = config_cls(self),172 singletons=(IFeatures,)173 )174 132 175 133 def _subscribe_foreign_features(self): 176 self. _get_features().subscribe_foreign_features()134 self.features.subscribe_foreign_features() 177 135 178 136 def _unsubscribe_foreign_features(self): 179 self._get_features().unsubscribe_foreign_features() 180 181 def _get_features(self): 182 return self.reg.get_singleton(IFeatures) 137 self.features.unsubscribe_foreign_features() 183 138 184 139 # Public Feature API 185 140 186 141 def list_features(self): 187 return self. _get_features().list_features()142 return self.features.list_features() 188 143 189 144 def has_foreign_feature(self, servicename, featurename): 190 return self. _get_features().has_foreign_feature(servicename, featurename)145 return self.features.has_foreign_feature(servicename, featurename) 191 146 192 147 def subscribe_feature(self, feature, instance): 193 return self. _get_features().subscribe_feature(feature, instance)148 return self.features.subscribe_feature(feature, instance) 194 149 195 150 def unsubscribe_feature(self, feature_object): 196 self. _get_features().unsubscribe_feature(feature_object)151 self.features.unsubscribe_feature(feature_object) 197 152 198 153 def subscribe_foreign_feature(self, servicename, feature, instance): … … 202 157 self.boss.unsubscribe_feature(servicename, feature_object) 203 158 204 def features(self, name):205 return self._get_features().get_feature_providers(name)206 207 159 ########## 208 160 # Actions 209 161 210 def _register_actions_config(self, config_cls):211 self.reg.register_plugin(212 instance = config_cls(self),213 singletons=(IActions,)214 )215 216 162 def _unregister_actions_config(self): 217 self. _get_actions().remove_actions()163 self.actions.remove_actions() 218 164 219 165 def _subscribe_keyboard_shortcuts(self): 220 self._get_actions().subscribe_keyboard_shortcuts() 221 222 def _get_actions(self): 223 return self.reg.get_singleton(IActions) 166 self.actions.subscribe_keyboard_shortcuts() 167 224 168 225 169 def get_action_group(self): 226 return self. _get_actions().get_action_group()170 return self.actions.get_action_group() 227 171 228 172 def get_action(self, name): 229 return self. _get_actions().get_action(name)173 return self.actions.get_action(name) 230 174 231 175 def get_keyboard_options(self): 232 return self. _get_actions().get_keyboard_options()176 return self.actions.get_keyboard_options() 233 177 234 178 # Logging
