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())
Exemplo n.º 3
0
#----------------------------------------------------------------------------#
# 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: