Changeset 1171:9fdc5c7f22e7 for pida/core/servicemanager.py
- Timestamp:
- 05/19/08 22:59:57 (7 months ago)
- Files:
-
- 1 modified
-
pida/core/servicemanager.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pida/core/servicemanager.py
r1165 r1171 1 1 import os, imp, sys 2 2 3 from pida.core.interfaces import IService, IEditor, IPlugin4 from pida.core.plugins import Registry5 3 from pida.core.service import Service 6 4 … … 111 109 self._boss = boss 112 110 self._loader = ServiceLoader(self._boss) 113 self._reg = Registry() 114 self._plugin_objects = {} 111 self._reg = {} 115 112 116 113 def get_service(self, name): 117 return self._reg .get_singleton(name)114 return self._reg[name] 118 115 119 116 def get_services(self): 120 117 return sorted( 121 self._reg. get_features(IService),118 self._reg.values(), 122 119 key=Service.sort_key) 123 120 124 121 def get_plugins(self): 125 return sorted( 126 self._reg.get_features(IPlugin), 127 key=Service.sort_key) 122 services = self.get_services() 123 return [s for s in services if not s.__module__.startswith('pida.services')] 128 124 129 125 def get_services_not_plugins(self): 130 126 services = self.get_services() 131 plugins = self.get_plugins() 132 return [s for s in services if s not in plugins] 127 return [s for s in services if s.__module__.startswith('pida.services')] 133 128 134 129 def activate_services(self): … … 161 156 plugin.stop_components() 162 157 plugin.stop() 163 self._reg.unregister(self._plugin_objects[plugin_name])158 del self._reg[plugin_name] 164 159 return plugin 165 160 else: … … 174 169 175 170 def _register_service(self, service): 176 self._reg.register_plugin( 177 instance=service, 178 singletons=( 179 service.get_name(), 180 ), 181 features=( 182 IService, 183 ) 184 ) 185 186 def _register_plugin(self, plugin): 187 plugin_object = self._reg.register_plugin( 188 instance=plugin, 189 singletons=( 190 plugin.get_name(), 191 ), 192 features=( 193 IService, 194 IPlugin, 195 ) 196 ) 197 self._plugin_objects[plugin.get_name()] = plugin_object 171 self._reg[service.get_name()] = service 172 173 def _register_plugin(self, service): 174 self._reg[service.get_name()] = service 198 175 199 176 def _create_services(self): … … 239 216 240 217 def register_editor(self, service): 241 self._reg.register_plugin( 242 instance=service, 243 singletons=( 244 service.get_name(), 245 IEditor, 246 ), 247 features=( 248 IService, 249 ) 250 ) 218 self._reg[service.get_name()] = service 251 219 252 220 def stop(self):
