快速业务通道

值得信赖: J/XFS介绍,第2部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
有的方法。在接下来的几节中我们将来研究每个基本的服务方法。

初始化消息

当 J/XFS 内核启动设备服务时,J/XFS 向设备服务发送一个初始化消息,该消息包含了一个 JxfsLocalDeviceInformation 类型的对象。这个对象携带着关于设备服务和它所附着的 J/XFS 客户机的一般信息。它为设备服务提供对在 J/XFS 服务器上的虚拟空间的访问,这一点与那些信息至少是一样重要的。任何持久的数据都可以存储在 J/XFS 服务器上,这就提供了一个存储配置信息的好地方。 初始化消息一到,设备服务就第一次与真正的硬件设备联系。

设备关闭在 J/XFS 客户机关闭过程中,J/XFS 内核向所有的设备服务发送一个关闭消息,如清单 2 所示。这是清理也可能是关闭硬件的好时机。

清单 2. 设备关闭消息

public void initialize(JxfsLocalDeviceInformation deviceInformation) throws JxfsException public void shutdown() throws JxfsException

回调对象和控制 ID

J/XFS 内核向设备服务发送一个包含 IJxfsEventNotification 类型的回调对象的消息。设备服务用这个回调对象来向内核发回事件消息。为每个需要与设备服务交互的应用程序发送这种类型的对象。如清单 3 所示,为对象分配一个控制 ID 并返回该控制 ID。

清单 3. 分配一个控制 ID

public int registerControl(String deviceType, IJxfsEventNotification callback) throws JxfsException public int deregisterControl(int controlID) throws JxfsException

一旦内核除去了回调对象,就不能再用该回调对象了。

参数 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. 内核表示不再需要设备服务。

public int close(int controlID) throws JxfsException

方法的声明(claim)和发布(release)

为了获得或返回对设备服务的排它访问, claim 和 release 消息被发送到设备服务。 这些方法是少数的在 J/XFS 中不遵守异步操作的规则的方法中的两个方法。直到排它访问被成功的授权或是在参数 timeout 给定的时间里返回了,方法的调用才返回值,如清单 6 所示。

清单 6. 声明和发布排它访问

public boolean claim(int timeout, int controlID) throws JxfsException public boolean release(int timeout, int controlID) throws JxfsException

当然,排它访问必须在可被返回前授权,并且消息 open 必须在一个 claim 请求前被发送到设备服务而且被成功的处理了。

取消(cancel)请求

内核发送消息 cancel 到设备服务(如果操作是以 identificationID 来标识的话),由回调控制根据 controlID 来启动的操作就要被停止。如果可能的话,设备服务将把硬件置回操作开始之前的状态。取消请求的控制

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号