def save_entries_to_file(self): """Saves all entries to disk""" file = open(_CSV_FILE_NAME, 'w') for entry in self._domain_handlers['Contacts'].enumerate_contacts(self): line = "" for field in entry: (field_name, field_data) = field line += field_name + '=' + field_data + ',' file.write(line[:-1] + "\n") file.close() def add_contact(self, contact_data): contact_id = self._domain_handlers['Contacts'].register_contact(self, contact_data) # TODO Delayed writing to prevent performance issues when adding lots of contacts self.save_entries_to_file() return contact_id ### Initalization ### BackendManager.register_backend(CSVContactBackend())
syslog(LOG_WARNING, "%s: Could not request SIM messagebook from ogsmd, scheduling retry (%s)" % (self.name, e)) return True return False def handle_incoming_message(self, message_id): self.gsm_sim_iface.RetrieveMessage( message_id, reply_handler=self.process_incoming_entry # TODO We ignore errors for now ) def install_signal_handlers(self): """Hooks to some d-bus signals that are of interest to us""" bus = SystemBus() bus.add_signal_receiver( self.handle_incoming_message, 'IncomingMessage', 'org.freesmartphone.GSM.SIM' ) ### Initalization ### BackendManager.register_backend(SIMMessageBackendFSO())
#----------------------------------------------------------------------------# # Test backend manager #----------------------------------------------------------------------------# from backend_manager import BackendManager class DummyBackend(object): name = 'DummyBackend' status = 'Happy' def get_supported_domains(self): return ('DummyDomain') db = DummyBackend() # Try adding a dummy backend and make sure it gets listed bm = BackendManager('') BackendManager.register_backend(db) if bm.GetName('/0') == db.name: print "Backend registration OK" else: print "Backend registration FAILED" # See if number of backends is correct if bm.GetEntryCount() == 1: print "Backend count OK" else: print "Backend count FAILED" if bm.GetSupportedPIMDomains('/0') == db.get_supported_domains(): print "Backend domain support check OK" else: