在Symbian系统里,Messaging属于很复杂的一个模块,涉及到的概念非常多。这里只是介绍一些简单的,及常用的概念。至于其它一些概念,如果以后有机会再另起文阐述。
1. Messaging包含什么
Symbian系统将与消息收发相关的内容都抽象到了Messaging这个模块。像短信、彩信、电子邮件等。具体表现在手机上就是“信息”这个菜单里面的内容。Messaging实现了SMS, MMS, POP, SMTP等协议,并将它们封闭到MTM的框架当中。同时,开发者也可以用Messaging模块的框架实现自己的协议。
2. 什么是MTM
MTM是Symbian定义的一个Messaging框架。通过这个框架,你可以实现自己的通信协议,UI,及Client Application。这个框架限定了你能做什么,你必须做什么。
3. 什么是Entry
Entry是Messaging中很基本的一个概念,表示一个条目。它可以是信息,目录,甚至服务(协议)。这些在Symbian中都被抽象成一个Entry。所有的Entry被组织成一个树形结构。
4. 基本数据结构
CMsvEntry: Entry类。这个类封装了Entry的基本操作,包括拷贝,移动,删除等。该类的每一个对象就表示树形结构中的一个Entry。通过它的类方法,可以遍历到树形结构中的每一个Entry。
TMsvId:为了更方便地表示一个Entry, Symbian将每一个Entry都对应一个ID。ID的类型就是TMsvId。例如Root就对应KMsvRootIndexEntryId。
CMsvStore:消息存储类,保存了Entry的数据,保存的数据格式取决于消息服务,服务数据项使用消息存储保存服务配置信息,文件夹数据项不使用消息存储。
TMsvEntry:为了节省内存和快速检索消息,消息服务器把数据项的一些概要信息(标题,日期,类型,ID等)写到消息索引中,当消息服务器启动时将索引装载到RAM中直到消息服务器关闭,Symbian提供了TMsvEntry类表示数据项的索引。每一个Entry都有一个对应的TMsvEntry索引对象。
CMsvSession:会话类,建立消息客户端和服务端之间的通信。
MMsvSessionObserver:会话观察者类,一个Session可以注册一个或多个Observer。Observer提供了响应特定事件的接口,当Session有该事件发生时,会通知对应的Observer。