Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド

[目次][索引][前へ][次へ]

6.3.2 子POAの作成

rootPOAにはあらかじめ定義されたポリシーの集合があり,これらは変更できません。ポリシーとは,POAの動作とPOAが管理するオブジェクトを制御するオブジェクトのことです。別のライフスパンポリシーのような別の動作が必要なら,新しいPOAを作成できます。

POAは,create_POAを使用して既存POAの子として作成します。必要なだけの数のPOAを作成できます。

子POAは親POAのポリシーを継承しません。

次に示すサンプルでは,子POAはrootPOAから作成され,パーシステントなライフスパンポリシーを持ちます。この子POAの状態管理にはrootPOAのPOAマネージャを使用します。POAマネージャの詳細については,「6.3.4 POAの活性化」で説明します。

コードサンプル6-5 ポリシーと子POAの作成(C++)
 
CORBA::PolicyList policies;
policies.length(1);
policies[(CORBA::ULong)0] = rootPOA->create_lifespan_policy(
      PortableServer::PERSISTENT);
// Create myPOA with the right policies
PortableServer::POAManager_var rootManager = 
      rootPOA->the_POAManager();
PortableServer::POA_var myPOA = rootPOA->create_POA( 
      "bank_agent_poa", rootManager,policies );
 

コードサンプル6-6 ポリシーと子POAの作成(Java)
 
// Create policies for our persistent POA
org.omg.CORBA.Policy[ ] policies = {
   rootPOA.create_lifespan_policy(
                             LifespanPolicyValue.PERSISTENT)
};
// Create myPOA with the right policies
POA myPOA =  rootPOA.create_POA( "bank_agent_poa",
                               rootPOA.the_POAManager(),
                               policies );