Chinaunix首页 | 论坛 | 博客
  • 博客访问: 543626
  • 博文数量: 1345
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 14830
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-14 20:32
文章分类

全部博文(1345)

文章存档

2010年(1345)

我的朋友

分类:

2010-10-30 13:12:59

  document分析「继承关系」   ——————————————————————————cakndocument -> ceikdocument -> capadocument——————————————————————————「主要作用」   1) 是app的data model. 2) 在基于文件的app中,document提供了对于文件的访问(store/restore)   3) 负责创建appui,从而可以提供修改document的基础,createappuil()负责创建application的appui对象。   实际上,document起到了一个中间层(intermediate layer)的作用。负责在appui和app model(engine)以及 file之间建立联系。   「appui」   ----------------------- 『document』   |「model」 <-> 「file」   「document的管理」   1) openfilel()   这个函数的功能和app的资源文件中的tbuf段(segment)密切相关。   resource tbuf r_default_document_name { buf="";}这个segment决定了application关联的文件名。这里的文件名连同路径就作为参数传递给了openfilel() 函数。这就使得application在启动的时候能够调用缺省的file,如果这个segment是空的,那么缺省的document的名字和application的basename相同。这里需要注意的是series60只允许存在一个缺省的file.这个函数的返回值是cfilestore*,这是返回给application framework的指针,以方便application framework把它传递给其他函数。   「注」   注意openfilel() 需要三个参数,其中文件名(tdesc& afilename)和file server session参数(rfs& afs) 应当是由application framework自动创建的。但是另外一个参数怎么确定的呢?   2) newdocumentl()   这个函数是由application framework来调用,用于初始化一个default document file.「注?」   这个函数是不是在资源文件没有文件名的情况下调用的?如果是这样,那么这个函数应当在openfilel()   之前被调用?   「解释」   我在document函数里面重载了函数newdocumentl()和openfilel(),并分别加上了断点跟踪调试。发现:(#) 如果在资源文件中没有文件名的话,那么这两个函数都不执行。   (#) 如果在资源文件存在文件名的话,那么首先执行的是openfilel()函数,但是这个时候的aopen参数值是0,表明文件不存在或者文件没有打开。那么接下来调用newdocumentl(),这个函数负责创建一个新的document file.接下来会调用document类的storel()函数。   (#) 在晚上上述的步骤之后,再重新运行这个app,那么启动的时候会调用openfilel()函数,这个时候aopen参数值是1,表明文件存在,那么接下来就调用restorel()函数对文件进行读写。   「对相关file的管理」   document类提供了两个函数对文件的mode访问和修改。appfilemode()和setappfilemode()。   「对相关file的访问存取」   document类提供了如下函数对file进行访问:savel();storel();restorel();externalizel();printl();其中savel()会在app退出的时候被调用,用于保存app相关的数据到file中去。   savel() ——> storel();而restorel()是在app启动的时候调用的,负责把文件的信息保存在document相关的model(engine)中去。   「具体的ui/engine的结构以后在仔细的研究一下:-)」 如果喜欢symbian入门系列: document对象分析 - symbian入门请收藏或告诉您的好朋友.
阅读(166) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~