let's study message.py
首先由定义一个函数判断是否是sim message or DB sms.
有类Message,它有两个成员:
sconn:
smanager:=SMSManager().
有方法:
close(self):self.smanager.close(),self.sconn=None.
add_messages(self,smslist,where=None):where!=None,调用self.smanager.add_messages(smslist,where).
然后为smslist中的每一个sms,调用self.add_message(sms),返回defer.gatherResults(response).
add_message(self,sms,where=None):如果where!=None,调用defer.maybeDeferred(self.smanager.add_message,sms,where).
get_messages(self):调用self.sconn.get_sms()返回d,添加callback:self.smanager.get_messages()+sim_sms.
get_message(self):调用self.sconn.get_sms_by_index(sms.index).
delete_messages(self,smslist):
对于smslist的每一个sms,如果是sim message,把self.sconn.delete_sms(sms.get_index()))
append到resp[]中,如果是DB-sms,调用self.smanager.delete_message_by_id(),append too.
return defer.gatherResults(resp).有见这个东西.....
delete_objs(self,objs):调用self.delete_messages(objs).
以及一个全局函数:
get_message_obj(sconn):这个返回_message,并且赋值sconn。
Next:sms.py还可以留在后面解决。
persistent.py
Contact类,实现IContact,__init__(self,name,number,index=None)
有member:name,number,index都是来自参数。
方法:
重载了__repr__,__eq__,__ne__.
get_index():
get_name():
get_number():
to_csv():
DBContact类,继承与item.Item类,也是为实现IContact.有类属性:typeName,schemaVersion,
name,number.
重载了__repr__,__eq__,__ne__.
get_index(self):
get_name(self):
get_number(self):
to_csv(self):
DBShortMessage类也是继承item.Item.有typeName,schemaVersion.
还有类成员:date,number,text,where。
方法:__repr__,__eq__,__ne__
和
get_index(self):
get_number(self):
get_text(self)
基类AxiomDBManager,有store来自于store.Store(path)
有方法close(self):self.store.close(),self.store=None.
ContactsManager继承上个类,__init__(self,path=consts.CONTACTS_DB).
有方法:
add_contact(self,contact):由DBContact()构造一个出来。
delete_contact(self,contact):self.store.query().deleteFromStore()(.
delete_contact_by_id(self,index):self.store.getItemByID(index).deleteFromStore()
find_contacts(self,pattern):对每一个get_contacts的contact,如果
pattern.lower()在contact.get_name().lower()就yield contact.不知道yield是什么意思i。
get_contacts(self):返回self.store.query(DBContact)的list。
get_contact_by_id(self):调用self.store.getItemByID(index)
SMSManager也是此继承与AxiomDBManager:
有方法:
add_message(self,sms,where=None):构造一个DBshortMessage()的对象。
add_messages(self,sms_list,where=None):对每一个sms,调用add_message(sms,where).
delete_message_by_id(self,index):store.getItemByID(index).deleteFromStore.
get_messages(self):返回store.query(DBShortMessage)的list
DBNetworkOperator也是继承与item.Item.
有类成员:
netid:
country:
name:
smsc:
apn:
username:
password:
dns1:
dns2:
有方法:__repr__
get_full_name(self):
而NetworkOperatorManager是继承于AxiomDBManager.
populate_networks(self,network_list):对networklist中所有的构造DBNetworkOperatore.
有方法:
get_network_by_id(self,netid)由netid来寻找network.
剩下的一个shortMessage类,和ShortMessageDeliver和ShortMessageSubmit.暂略。
首先由定义一个函数判断是否是sim message or DB sms.
有类Message,它有两个成员:
sconn:
smanager:=SMSManager().
有方法:
close(self):self.smanager.close(),self.sconn=None.
add_messages(self,smslist,where=None):where!=None,调用self.smanager.add_messages(smslist,where).
然后为smslist中的每一个sms,调用self.add_message(sms),返回defer.gatherResults(response).
add_message(self,sms,where=None):如果where!=None,调用defer.maybeDeferred(self.smanager.add_message,sms,where).
get_messages(self):调用self.sconn.get_sms()返回d,添加callback:self.smanager.get_messages()+sim_sms.
get_message(self):调用self.sconn.get_sms_by_index(sms.index).
delete_messages(self,smslist):
对于smslist的每一个sms,如果是sim message,把self.sconn.delete_sms(sms.get_index()))
append到resp[]中,如果是DB-sms,调用self.smanager.delete_message_by_id(),append too.
return defer.gatherResults(resp).有见这个东西.....
delete_objs(self,objs):调用self.delete_messages(objs).
以及一个全局函数:
get_message_obj(sconn):这个返回_message,并且赋值sconn。
Next:sms.py还可以留在后面解决。
persistent.py
Contact类,实现IContact,__init__(self,name,number,index=None)
有member:name,number,index都是来自参数。
方法:
重载了__repr__,__eq__,__ne__.
get_index():
get_name():
get_number():
to_csv():
DBContact类,继承与item.Item类,也是为实现IContact.有类属性:typeName,schemaVersion,
name,number.
重载了__repr__,__eq__,__ne__.
get_index(self):
get_name(self):
get_number(self):
to_csv(self):
DBShortMessage类也是继承item.Item.有typeName,schemaVersion.
还有类成员:date,number,text,where。
方法:__repr__,__eq__,__ne__
和
get_index(self):
get_number(self):
get_text(self)
基类AxiomDBManager,有store来自于store.Store(path)
有方法close(self):self.store.close(),self.store=None.
ContactsManager继承上个类,__init__(self,path=consts.CONTACTS_DB).
有方法:
add_contact(self,contact):由DBContact()构造一个出来。
delete_contact(self,contact):self.store.query().deleteFromStore()(.
delete_contact_by_id(self,index):self.store.getItemByID(index).deleteFromStore()
find_contacts(self,pattern):对每一个get_contacts的contact,如果
pattern.lower()在contact.get_name().lower()就yield contact.不知道yield是什么意思i。
get_contacts(self):返回self.store.query(DBContact)的list。
get_contact_by_id(self):调用self.store.getItemByID(index)
SMSManager也是此继承与AxiomDBManager:
有方法:
add_message(self,sms,where=None):构造一个DBshortMessage()的对象。
add_messages(self,sms_list,where=None):对每一个sms,调用add_message(sms,where).
delete_message_by_id(self,index):store.getItemByID(index).deleteFromStore.
get_messages(self):返回store.query(DBShortMessage)的list
DBNetworkOperator也是继承与item.Item.
有类成员:
netid:
country:
name:
smsc:
apn:
username:
password:
dns1:
dns2:
有方法:__repr__
get_full_name(self):
而NetworkOperatorManager是继承于AxiomDBManager.
populate_networks(self,network_list):对networklist中所有的构造DBNetworkOperatore.
有方法:
get_network_by_id(self,netid)由netid来寻找network.
剩下的一个shortMessage类,和ShortMessageDeliver和ShortMessageSubmit.暂略。
本文介绍了一个短信管理模块的设计与实现,包括消息处理流程、数据库操作方法及联系人管理等核心功能。通过具体类和方法说明如何添加、删除及获取短信。
1496

被折叠的 条评论
为什么被折叠?



