Registry Data (1) Saturday, October 10, 2009

1 Registry data

在不同的plugin系统中肯定存在一个数据结构包含了系统中每个plugin的详细信息,实际上是一个plugin注册系统。为什么对于任何plugin系统肯定存在这样一个数据结构?客户软件在使用plugin之前必须先查找到满足自己需求的plugin。客户提供自己需要的接口的描述,然后plugin系统开始在注册系统中查找,并把相应的plugin的信息返回,该plugin中包含了满足客户要求的接口的实现。
在ECom中,Registry data就是那个注册系统。其中包含了所有“合法”实现的信息。

1.1 注册方式

Registry data 如何收集plugin的信息?在ECom中,plugin采用被动注册的方式,它只是把自己的注册文件存入到指定的路径;当服务(ecomserver.exe)启动的时候会根据OS的配置采用不同的方式扫描该路径下的注册资源文件建立Registry Data。通常情况下,
· 从Z盘到A盘依次扫描
· 对于内置、只读的盘,扫描\private\10009D8F\
· 对于其他盘,扫描\resource\plugins
其中内置、只读的盘是那些同时具有KDriveAttInternal和KMediaAttWriteProtected属性的盘,这样的盘通常都是系统盘。Symbian 优化了这类盘上的注册资源文件,但是影响不大,在这里不讨论。
启动扫描创建Registry Data后,它是不是就此一直不变?比如安装了新的plugin,这个plugin如何进入到Registry Data中?启动扫描结束后,ECom启动Discoverer检测“相关的变化”,进一步决定是不是要对特定的盘符重新进行扫描、重新建立针对这个盘的Registry Data 分支。 “相关的变化”包括:
1) 拔、插了存储卡
2) 安装或者卸载plugin
3) 系统语言改变


--------------------------------------------------------------------------------

下一个小节,讨论如何组织收集到的注册信息

待继续。。。。

0 comments: