12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

抽 象 接 口抽 象 接 口客 户 valuetypes抽 象 接 口 允 许 您 在 运 行 时 选 择 是 通 过 值 还 是 通 过 引 用 来 传 递 对 象 。它 们 在 以 下 方 面 不 同 于 IDL 接 口 :● 实 际 参 数 类 型 决 定 是 根 据 引 用 传 递 对 象 , 还 是 传 递 valuetype。 参 数 类 型 根 据以 下 两 个 规 则 决 定 。 如 果 参 数 类 型 是 普 通 接 口 类 型 或 子 类 型 , 接 口 类 型 是 签 名 抽象 接 口 类 型 的 子 类 型 , 并 且 已 向 <strong>VisiBroker</strong> ORB 注 册 对 象 , 则 将 该 参 数 类 型当 作 对 象 引 用 。 如 果 不 能 将 参 数 类 型 作 为 对 象 引 用 传 递 出 去 , 但 可 以 作 为 值 传 递出 去 , 则 将 该 参 数 类 型 当 作 值 。 如 果 不 能 作 为 值 传 递 出 去 , 则 会 出 现 BAD_PARAM例 外 。● 在 C++ 中 绝 对 接 口 暗 中 并 不 来 源 于 CORBA::Object, 在 Java 中 也 不 来 源 于org.omg.CORBA.Object, 因 为 它 们 可 以 表 示 对 象 引 用 或 valuetype。Valuetype并 不 一 定 要 支 持 公 用 对 象 引 用 操 作 。 如 果 可 将 抽 象 接 口 成 功 窄 转 换 成 对 象 引 用 类型 , 则 可 以 在 C++ 中 调 用 CORBA::Object 操 作 , 或 在 Java 中 调 用org.omg.CORBA.Object 操 作 。● 抽 象 接 口 只 能 从 其 它 抽 象 接 口 来 继 承 。● Valuetype 可 支 持 一 个 或 多 个 抽 象 接 口 。例 如 , 请 分 析 以 下 抽 象 接 口 。abstract interface ai{};interface itp :ai{};valuetype vtp supports ai{};interface x {void m(ai aitp);};valuetype y {void op(ai aitp);};对 于 方 法 m 的 变 量 :● itp 始 终 作 为 对 象 引 用 被 传 递 出 去 。● vtp 作 为 值 被 传 递 出 去 。通 过 在 IDL 中 声 明 客 户 的 valuetype, 您 可 以 忽 视 模 型 的 汇 集 和 解 包 , 只 负 责 编码 和 解 码 。custom valuetype customPoint{public long x;public long y;private string label;26-8 <strong>VisiBroker</strong> 开 发 者 指 南

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!