12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

动 态 创 建 对 象 实 现 的 步 骤动 态 创 建 对 象 实 现 的 步 骤要 使 用 DSI 动 态 地 创 建 对 象 实 现 , 执 行 以 下 步 骤 :1 当 在 C++ 下 编 译 你 的 IDL 时 , 使 用 -type_code_inf 标 志 ; 或 者在 Java 下 编 译 你 的 IDL 时 , 使 用 -dynamic_marshal 标 志 。2 设 计 你 的 对 象 实 现 使 它 从 C++ PortableServer::DynamicImplementation 抽 象 类或Java org.omg.PortableServer.DynamicImplementation 接 口 派 生 , 而 不 是 从 框架 类 派 生 。3 声 明 并 实 现 invoke 方 法 , <strong>VisiBroker</strong> ORB 将 使 用 该 方 法 将 客 户 请 求 传 送 到 你的 对 象 。4 在 POA 管 理 器 上 将 你 的 对 象 实 现 (POA 服 务 对 象 ) 注 册 为 默 认 的 服 务 对 象 。使 用 DSI 的 实 例 程 序 的 位 置<strong>VisiBroker</strong> <strong>Edition</strong> 的 examples/basic/bank_dynamic 目 录 下 包 含 一 个 说 明 如 何 使用 DSI 的 实 例 。 本 节 中 将 引 用 这 些 实 例 程 序 来 说 明 DSI 概 念 。 以 下 的 Bank.idl 文件 说 明 该 实 例 中 实 现 的 接 口 。// Bank.idlmodule Bank {interface Account {float balance();};interface AccountManager {Account open(in string name);};};扩 展 DynamicImplementation 类C++:Java:要 使 用 DSI, 对 象 实 现 应 该 从 以 下 出 示 的 DynamicImplementation 基 础 类 派 生 。 这个 类 提 供 数 个 构 建 器 和 invoke 方 法 , 你 必 须 实 现 它 们 。class PortableServer::DynamicImplementation : public virtualPortableServer::ServantBase {public:virtual void invoke(PortableServer::ServerRequest_ptr request) = 0;. . .};Java 下 的 DynamicImplementation 抽 象 类 :package org.omg.CORBA;public abstract class DynamicImplementation extends Servant {public abstract void invoke(ServerRequest request);19-2 <strong>VisiBroker</strong> 开 发 者 指 南

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

Saved successfully!

Ooh no, something went wrong!