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.

手 动 移 植 BOA 到 POA表 30.7Java 下 的 类 名 变 化旧 类 名 称_st_Account_st_AccountManager_AccountImplBase_AccountManagerImplBase_tie_Account_tie_AccountManager新 类 名 称_AccountStub_AccountManagerStubAccountPOAAccountManagerPOAAccountPOATieAccountManagerPOATie查 看 实 例examples/boa/boa2poa 目 录 包 含 一 个 实 例 说 明 如 何 将 您 的 BOA 更 新 为 相 应 的POA 代 码 。本 例 使 用 以 下 方 法 将 Server.c (C++) 或 Server.java (Java) 中 的 BOA 代码 更 新 为 POA 代 码 :● 取 得 根 POA 的 一 个 引 用 , 以 代 替 BOA 初 始 化 过 程● 将 相 应 的 POA 策 略 设 置 为 模 拟 的 BOA 特 性● 定 义 服 务 对 象 (POA 的 服 务 对 象 定 义 与 BOA 不 同 )● 激 活 POA 管 理 器 (BOA 中 没 有 相 应 的 步 骤 )● 通 过 C++ orb->run() 或 Java orb.run() 而 不 是 通 过 C++ boa->impl_is_ready() 或 boa.impl_is_ready(), 来 等 待 进 入 的 请 求 。取 得 根 POA 的 引 用 C++:使 用 BOA 时 , 要 通 过 orb->BOA_init() 取 得 BOA 的 引 用 。 但 在 POA 下 , 您 要取 得 根 POA 的 引 用 。 您 可 通 过 使 用 orb->resolve_initial_references("RootPOA") 来 完 成 该 操 作 。resolve_initial_references 返 回 CORBA::object 类 型 的 一 个 值 , 然 后 , 您 要 将 该值 窄 转 换 成 所 需 要 的 类 型 。C++:CORBA::object_var obj = resolve_initial_references("RootPOA");PortableServer::POA_var rootPOA = PortableServer::POA::_narrow(obj);Java:Java:使 用 BOA 时 , 要 通 过 orb.BOA_init() 取 得 BOA 的 一 个 引 用 。 但 在 POA 下 , 您要 取 得 根 POA 的 引 用 。 您 可 以 使 用 orb.resolve_initial_references("RootPOA")来 完 成 该 操 作 。resolve_initial_references 返 回 一 个 CORBA.object 类 型 的 值 , 然后 , 您 要 将 它 窄 转 换 成 所 需 的 类 型POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));设 置 POA 策 略POA 的 特 性 由 为 该 POA 所 设 置 的 策 略 来 定 义 。 每 个 POA 都 有 一 套 自 己 的 策 略 ;POA 不 能 从 其 它 POA 上 继 承 策 略 。移 植 <strong>VisiBroker</strong> 代 码 30-5

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

Saved successfully!

Ooh no, something went wrong!