Show
Ignore:
Timestamp:
04/29/08 10:51:47 (7 months ago)
Author:
Ronny Pfannschmidt <Ronny.Pfannschmidt@…>
Message:

removed the need for Service.reg

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pida/core/service.py

    r1143 r1144  
    3434        self.boss = boss 
    3535        self.log.debug('Loading Service') 
    36         self.reg = Registry() 
    3736 
    3837    def create_all(self): 
     
    4140        {servicemanager.ServiceManager} 
    4241        """ 
    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) 
    4948 
    5049    def subscribe_all(self): 
     
    8180 
    8281    ########## 
    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 
    9683    def get_option(self, name): 
    97         return self.get_options().get_option(name) 
     84        return self.options.get_option(name) 
    9885 
    9986    def opt(self, name): 
    100         return self.get_options().get_value(name) 
     87        return self.options.get_value(name) 
    10188 
    10289    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) 
    12698 
    12799    ########## 
     
    129101 
    130102    # 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         ) 
    136103 
    137104    def _subscribe_foreign_events(self): 
    138         self._get_events().subscribe_foreign_events() 
     105        self.events.subscribe_foreign_events() 
    139106 
    140107    def _unsubscribe_foreign_events(self): 
    141         self._get_events().unsubscribe_foreign_events() 
     108        self.events.unsubscribe_foreign_events() 
    142109 
    143110    # Public Events API 
    144     def _get_events(self): 
    145         return self.reg.get_singleton(IEvents) 
    146  
    147111    def get_event(self, name): 
    148         return self._get_events().get(name) 
     112        return self.events.get(name) 
    149113 
    150114    def subscribe_foreign_event(self, servicename, name, callback): 
     
    155119 
    156120    def subscribe_event(self, name, callback): 
    157         self._get_events().subscribe_event(name, callback) 
     121        self.events.subscribe_event(name, callback) 
    158122 
    159123    def unsubscribe_event(self, name, callback): 
    160         self._get_events().unsubscribe_event(name, callback) 
    161          
     124        self.events.unsubscribe_event(name, callback) 
    162125 
    163126    def emit(self, name, **kw): 
    164         self._get_events().emit(name, **kw) 
     127        self.events.emit(name, **kw) 
    165128 
    166129    ########## 
    167130    # Features 
    168131 
    169     def _register_feature_config(self, config_cls): 
    170         self.reg.register_plugin( 
    171             instance = config_cls(self), 
    172             singletons=(IFeatures,) 
    173         ) 
    174132 
    175133    def _subscribe_foreign_features(self): 
    176         self._get_features().subscribe_foreign_features() 
     134        self.features.subscribe_foreign_features() 
    177135 
    178136    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() 
    183138 
    184139    # Public Feature API 
    185140 
    186141    def list_features(self): 
    187         return self._get_features().list_features() 
     142        return self.features.list_features() 
    188143 
    189144    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) 
    191146 
    192147    def subscribe_feature(self, feature, instance): 
    193         return self._get_features().subscribe_feature(feature, instance) 
     148        return self.features.subscribe_feature(feature, instance) 
    194149 
    195150    def unsubscribe_feature(self, feature_object): 
    196         self._get_features().unsubscribe_feature(feature_object) 
     151        self.features.unsubscribe_feature(feature_object) 
    197152 
    198153    def subscribe_foreign_feature(self, servicename, feature, instance): 
     
    202157        self.boss.unsubscribe_feature(servicename, feature_object) 
    203158 
    204     def features(self, name): 
    205         return self._get_features().get_feature_providers(name) 
    206  
    207159    ########## 
    208160    # Actions 
    209161 
    210     def _register_actions_config(self, config_cls): 
    211         self.reg.register_plugin( 
    212             instance = config_cls(self), 
    213             singletons=(IActions,) 
    214         ) 
    215  
    216162    def _unregister_actions_config(self): 
    217         self._get_actions().remove_actions() 
     163        self.actions.remove_actions() 
    218164 
    219165    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 
    224168 
    225169    def get_action_group(self): 
    226         return self._get_actions().get_action_group() 
     170        return self.actions.get_action_group() 
    227171 
    228172    def get_action(self, name): 
    229         return self._get_actions().get_action(name) 
     173        return self.actions.get_action(name) 
    230174 
    231175    def get_keyboard_options(self): 
    232         return self._get_actions().get_keyboard_options() 
     176        return self.actions.get_keyboard_options() 
    233177 
    234178    # Logging