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.

创 建 POA注 :org.omg.PortableServer.POA rootPOA =POAHelper.narrow(orb.resolve_initial_references("RootPOA"));resolve_initial_references 方 法 返 回 C++ CORBA::object 类 型 的 值 或 Javaorg.omg.CORBA.Object 类 型 的 值 。 您 负 责 将 返 回 的 对 象 引 用 窄 转 换 成 所 需 要 的 类型 , 该 类 型 为 上 例 中 的 C++ PortableServer::POA 或 Javaorg.omg.PortableServer.POA 。设 置 POA 属 性策 略 不 是 父 POA 上 继 承 而 来 的 。 如 果 您 想 要 POA 具 有 一 个 特 定 的 特 性 , 您 必 须识 别 所 有 与 默 认 值 不 同 的 策 略 。 有 关 POA 策 略 的 详 情 , 请 参 阅 第 7-3 页 "POA策 略 "。CORBA::PolicyList policies;policies.length(1);policies[(CORBA::ULong)0] = rootPOA->create_lifespan_policy(PortableServer::PERSISTENT);在 Java 下 为 POA 创 建 策 略 的 实 例 :org.omg.CORBA.Policy[] policies = {rootPOA.create_lifespan_policy(LifespanPolicyValue.PERSISTENT)};创 建 和 激 活 POAPOA 是 使 用 create_POA 在 其 父 POA 上 创 建 的 。 您 可 以 将 POA 命 名 为 任 何 您 喜欢 的 名 称 , 但 是 , 对 同 一 父 POA 下 的 所 其 它 所 有 POA 而 言 , 该 名 称 必 须 是 唯 一的 。 如 果 您 尝 试 给 两 个 POA 起 同 样 的 名 称 , 则 会 掷 出 一 个 CORBA 违 例(AdapterAlreadyExists)。要 创 建 新 的 POA, 可 按 以 下 方 式 使 用 create_POAPOA create_POA(POA_Name, POAManager, PolicyList);POA 管 理 器 控 制 POA 的 状 态 ( 例 如 , POA 是 否 处 理 请 求 )。 如 果 将 null 作 为POA 管 理 器 名 传 递 到 create_POA, 则 会 创 建 一 个 新 的 POA 管 理 器 对 象 , 并 与POA 关 联 。 通 常 , 您 要 为 所 有 POA 使 用 同 一 POA 管 理 器 。 有 关 POA 管 理 器的 详 情 , 请 参 阅 第 7-24 页 " 用 POA 管 理 器 管 理 POA"。POA 管 理 器 ( 及 POA) 不 是 一 经 创 建 就 被 自 动 激 活 的 。 使 用 activate() 激 活 与您 的 POA 关 联 的 POA 管 理 器 。CORBA::PolicyList policies;policies.length(1);policies[(CORBA::ULong)0] =rootPOA->create_lifespan_policy(PortableServer::PERSISTENT);// 用 正 确 的 策 略 创 建 myPOAPortableServer::POAManager_var rootManager = rootPOA->the_POAManager();PortableServer::POA_var myPOA =rootPOA->create_POA("bank_agent_poa", rootManager, policies);使 用 POA 7-7

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

Saved successfully!

Ooh no, something went wrong!