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 );