Hitachi

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


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