值得信赖: J/XFS介绍,第2部分 - 编程入门网
有的方法。在接下来的几节中我们将来研究每个基本的服务方法。
初始化消息 当 J/XFS 内核启动设备服务时,J/XFS 向设备服务发送一个初始化消息,该消息包含了一个 JxfsLocalDeviceInformation 类型的对象。这个对象携带着关于设备服务和它所附着的 J/XFS 客户机的一般信息。它为设备服务提供对在 J/XFS 服务器上的虚拟空间的访问,这一点与那些信息至少是一样重要的。任何持久的数据都可以存储在 J/XFS 服务器上,这就提供了一个存储配置信息的好地方。 初始化消息一到,设备服务就第一次与真正的硬件设备联系。 设备关闭在 J/XFS 客户机关闭过程中,J/XFS 内核向所有的设备服务发送一个关闭消息,如清单 2 所示。这是清理也可能是关闭硬件的好时机。 清单 2. 设备关闭消息
回调对象和控制 ID J/XFS 内核向设备服务发送一个包含 IJxfsEventNotification 类型的回调对象的消息。设备服务用这个回调对象来向内核发回事件消息。为每个需要与设备服务交互的应用程序发送这种类型的对象。如清单 3 所示,为对象分配一个控制 ID 并返回该控制 ID。 清单 3. 分配一个控制 ID
一旦内核除去了回调对象,就不能再用该回调对象了。 参数 deviceType 参数 deviceType 包含了设备的类型(假使设备服务支持不止一种的类型),但这是高级的设备服务开发,所以这里我们就不深入了。(详见规范) “打开(open)” 消息 J/XFS 内核发送的消息 open 通知设备服务:很可能操作请求将在给定的控制 ID 后面传入。 参数 controlID 一定要是在一个 IJxfsEventNotification 的实例的 registerControl 方法中分配的一个有效的控制 ID,从而设备服务可以将操作结果报告回来。清单 4 给出了方法的用法:必须在设备服务中实现它以便接收来自内核的 open 消息。 清单 4. 内核为进来的请求准备了设备服务。 public int open(int controlID) throws JxfsException 值得信赖: J/XFS介绍,第2部分(5)时间:2011-02-07 IBM Christoph Czernohous“关闭(close)” 消息 在内核发送 deregisterControl 到设备服务前(因为 open 请求的一个 IJxfsEventNotification 实例已经被成功地处理了),内核必须发送一个 close 消息以表明没有需要那个控制 ID 的操作请求了,如清单 5 所示。 清单 5. 内核表示不再需要设备服务。
方法的声明(claim)和发布(release) 为了获得或返回对设备服务的排它访问, claim 和 release 消息被发送到设备服务。 这些方法是少数的在 J/XFS 中不遵守异步操作的规则的方法中的两个方法。直到排它访问被成功的授权或是在参数 timeout 给定的时间里返回了,方法的调用才返回值,如清单 6 所示。 清单 6. 声明和发布排它访问
当然,排它访问必须在可被返回前授权,并且消息 open 必须在一个 claim 请求前被发送到设备服务而且被成功的处理了。 取消(cancel)请求 内核发送消息 cancel 到设备服务(如果操作是以 identificationID 来标识的话),由回调控制根据 controlID 来启动的操作就要被停止。如果可能的话,设备服务将把硬件置回操作开始之前的状态。取消请求的控制 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |