快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
ID 必须与要取消的操作的控制 ID 相同。没有标识 ID 分配给 cancel 请求,这就意味着 cancel 请求是不能被取消的(这有些不可思议吧)。清单 7 表示了一个取消(cancel)请求。

清单 7. 一个取消(cancel)请求

public void cancel(int identificationID, int controlID) throws JxfsException

getStatus 操作

getStatus 操作是非常重要的,因为它把设备的当前状态通知 J/XFS 系统中所有相关的对象。如清单 8 所示,方法返回一个 JxfsStatus 的实例,因此这个方法是在 J/XFS 设备服务中异步处理规则的另一个例外。

清单 8. getStatus 操作

public JxfsStatus getStatus(int controlID) throws JxfsException

关于该方法您需要理解两点。如前面所概述的, JxfsStatus 和它的子类包含关于一些不同状态的信息。 第一点要求是相互依赖的状态必须一直前后一致。例如,状态“claimed”依赖状态“open”:设备服务必须在被声明前打开。当收集状态信息供给  JxfsStatus  的一个新的实例时,必须同步的访问那些状态。

第二点与 JxfsStatus 类的设计有关。 JxfsStatus 的实例是值对象,这意味着值对象的唯一作用是携带不提供任何逻辑的信息。这些对象的内容可以被任何其他的对其引用的对象更改。结果,设备服务必须为 getStatus 方法的每一个调用返回一个新的 JxfsStatus 实例,从而确保设备服务拥有一个对对象的引用,而其他对象都不能更改它的内容。

getStatus 操作的简单易懂的实现与清单 9 很相似。假定设备服务有一个内部的监视对象来同步访问方法 getStateMonitor() 返回的所有的状态信息。每个状态可以被相应的方法(例如, isClosed() )查询。实现必须确保当任何对象锁定了由 getStateMonitor() 返回的对象时,状态信息不可改变。所以,您必须检查设备服务是处于“打开”状态,并且如果不是的话就抛出定义的异常。请阅读关于每个方法的 J/XFS 规范来找出您必须检查什么条件。然后,创建一个新的 JxfsStatus 实例,设置所有的状态信息,并返回给访问者。

清单 9. getStatus 的实现

public JxfsStatus getStatus(int controlID) throws JxfsException {    synchronized (getStateMonitor())    {     if (isClosed())      throw new JxfsException(JxfsConst.JXFS_E_CLOSED,         "The device service is in state ''closed''.");     final JxfsStatus state = new JxfsStatus();     state.setBusy(isBusy());     state.setClaimed(isClaimed());     state.setClaimPending(isClaimPending());     state.setHardwareError(isHardwareError());     state.setOpen(isOpen());     state.setPowerSave(isPowerSave());     state.setUserActionError(isUserActionError());     return state;    } }

值得信赖: J/XFS介绍,第2部分(6)

时间:2011-02-07 IBM Christoph Czernohous

设备服务信息

设备服务必须提供一些自身的版本信息和所控制硬件的描述。 getDeviceServiceVersion 操作在 JxfsVersion 的一个实例中提供当前安装的设备服务的版本。

清单 10 中所示的其他两个方法返回了与设备服务相连的硬件的类型和硬件的更详尽的描述。如果设备服务支持多种机器(例如相同类型的不同型号),这里设备服务应该给出实际上的配置。

清单 10. 获得关于设备服务的信息的三个操作

public JxfsVersion getDeviceServiceVersion(int controlID) throws JxfsException public String getPhysicalDeviceName(int controlID) throws JxfsException public String getPhysicalDeviceDescription(int controlID) throws JxfsE

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号