24.2.2 DynAnyの生成
DynAnyオブジェクトは,DynAnyFactoryオブジェクトでオペレーションを呼び出して生成します。まず,DynAnyFactoryオブジェクトのリファレンスを取得してから,そのオブジェクトを使用して新しいDynAnyオブジェクトを生成します。
- コードサンプル24-1 DynAnyの生成(C++)
CORBA::Object_var obj = orb->resolve_initial_references("DynAnyFactory"); DynamicAny::DynAnyFactory_var factory = DynamicAny::DynAnyFactory::_narrow(obj); // Create Dynamic struct DynamicAny::DynAny_var dynany = factory->create_dyn_any_from_type_code( Printer::_tc_StructType); DynamicAny::DynStruct_var info = DynamicAny::DynStruct::_narrow(dynany); info->set_members(seq); CORBA::Any_var any = info->to_any();
- コードサンプル24-2 DynAnyの生成(Java)
// Resolve Dynamic Any Factory DynAnyFactory factory = DynAnyFactoryHelper.narrow( orb.resolve_initial_references("DynAnyFactory")); byte[ ] oid = "PrinterManager".getBytes(); // Create the printer manager object. PrinterManagerImpl manager = new PrinterManagerImpl((com.inprise.vbroker.CORBA.ORB) orb, factory, serverPoa, oid); // Export the newly create object. serverPoa.activate_object_with_id(oid, manager); System.out.println(manager + " is ready.");