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.

创 建 与 初 始 化 请 求表 18.1方 法值标 志NamedValue 方 法说 明返 回 一 个 到 代 表 项 目 值 的 Any 对 象 的 指 针 , 随后 您 可 以 用 该 值 来 初 始 化 值 。 要 取 得 详 情 , 请参 阅 “ 用 Any 类 安 全 地 传 递 类 型 。”指 示 该 项 目 是 输 入 变 量 、 输 出 变 量 、 或 者 输 入输 出 变 量 。 如 果 该 项 目 是 输 入 输 出 变 量 , 您 可以 指 定 一 个 标 志 来 表 示 <strong>VisiBroker</strong> ORB 应该 复 制 该 变 量 并 让 调 用 者 的 存 储 器 保 持 不 变 。标 志 为 : ARG_IN ARG_OUT ARG_INOUTC++:用 Any 类 安 全 地 传 递 类 型该 类 用 于 保 存 IDL 指 定 的 类 , 以 便 它 能 够 以 类 型 安 全 的 方 式 来 传 递 。该 类 的 对 象 具 有 一 个 到 定 义 包 含 的 对 象 的 类 型 的 TypeCode 的 指 针 和 一 个 到 包 含 的对 象 的 指 针 。 提 供 有 构 建 、 复 制 、 和 释 放 对 象 的 方 法 , 也 提 供 有 初 始 化 和 查 询 对 象的 值 和 类 型 的 方 法 。 另 外 , 也 提 供 有 流 式 操 作 器 方 法 , 以 便 读 写 出 入 流 的 对 象 。 以下 的 代 码 示 例 是 在 C++ 下 定 义 该 类 的 实 例 。C++: class Any {public:. . .CORBA_TypeCode_ptr type();void type(CORBA_TypeCode_ptr tc);const void *value() const;static CORBA::Any_ptr _nil();static CORBA::Any_ptr _duplicate(CORBA::Any *ptr);static void _release(CORBA::Any *ptr);. . .}Java: 该 类 的 对 象 具 有 一 个 到 定 义 包 含 的 对 象 的 类 型 的 TypeCode 的 指 针 和 一 个 到 包 含 的对 象 的 指 针 。 提 供 有 构 建 、 复 制 、 和 释 放 对 象 的 方 法 , 也 提 供 有 初 始 化 和 查 询 对 象的 值 和 类 型 的 方 法 。 另 外 , 也 提 供 有 流 式 操 作 器 方 法 , 以 便 读 写 出 入 流 的 对 象 。 以下 的 代 码 示 例 是 Java 下 的 实 例 。Java:package org.omg.CORBA;public abstract class Any {public abstract TypeCode type();public abstract void type(TypeCode type);public abstract void read_value(InputStream input, TypeCode type);public abstract void write_value(OutputStream output);public abstract boolean equal(Any rhs);. . .}用 TypeCode 类 表 示 变 量 或 属 性 类 型该 类 由 接 口 仓 库 和 IDL 编 译 器 用 于 表 示 变 量 或 属 性 的 类 型 。 TypeCode 对 象 也 用 于Request 对 象 , 以 和 Any 类 一 起 指 定 变 量 的 类 型 。18-12 <strong>VisiBroker</strong> 开 发 者 指 南

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

Saved successfully!

Ooh no, something went wrong!