DSF data model

DSF Data Model描述了数据的自然结构,IDMContext是数据块的句柄,具有分层、线程安全和轻量级的特性。它不直接提供服务引用,而是用于检索数据对象。IDMContext层次结构支持遍历,DMContext工具类提供便利方法如搜索特定类型上下文和判断上下级关系。
摘要由CSDN通过智能技术生成

Data Model指的是由DSF服务检索的数据的自然结构,创建一个debugger的用户接口的一个巨大挑战是:目标上可用的数据量远远大于实际提供给用户的数量。因此,调试服务需要将数据分解为具有适当粒度的块来实现最大的性能和可用性

  • IDMContext
    IDMContext表示数据模型中数据块的句柄。这个接口是数据模型API的一个最小但最核心的特性。
    什么是 data model context:
    • 他是分层的。context有其他的context作为父context,分层context是一个给定的总体数据模型的系统。
    • 他扩展了org.eclipse.core.runtime.IAdaptable接口,这允许装饰器(decorators),可重定目标的动作(action)与一个context相关联
    • 他与单个的DSF session关联。 IDMContext.getSessionID()返回一个给定的context的sessionID,这允许所有客户端获取session上的handle(句柄),executor需要访问的来自context的dsf服务。
    • 他是线程安全的,这允许在查看器(viewer)、缓存(cathe)和其他可能实现自己线程模型的客户端中存储和比较context对象。
    • 他是轻量级的 最好不变的,这允许客户端存储context,context可能会在发起它们的服务的生命周期之外持续存在。如果context包含对大量数据的引用,或者它可能会阻止对这些数据进行垃圾收集
      data model context不是什么:
    • 他不是一个服务的引用,context不应该直接返回对服务的引用,因为客户端应该使用适当的osgi api来获取DSF服务的引用
    • 他不是持久的,因为一个context返回一个contextid,因此他在单个dsf session生命周期内有效
      注意:IDMContext对象可用于从服务检索任何类型的数据对象。虽然定义了IDMData标记接口,但它的存在是历史的,使用也是可选的
      2.Context Hierarchy(层次结构)
      IDMContext接口最强大的特性就是他的层次结构,IDMContext.getParents()方法返回一个给定的context的直接祖先,context的直接祖先允许客户端遍历一个context全部的层次结构,计时器案例是context层次结构最好的诠释,在计时器案例中有三个context被使用:
    • Timer 没有父context
    • Trigger 没有父context
    • Alarm 需要timer和tigger作为父context
      下面的代码片段显示了这些父级在AlarmService中的使用方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值