1. Create orb, POA, and poa_manager objects
CORBA: orb_var orb = init_orb_with_naming_service (argc, argv );
CORBA: object_var poa_object = orb-> resolve_initial_references ("rootpoa"); portableserver: poa_var POA = portableserver: Poa: _ narrow (poa_object.in (); portableserver :: poamanager_var poa_manager = PoA-> the_poamanager (); poa_manager-> activate (); tao_orb_manager orb_manager (orb. in (), POA. in (), poa_manager.in ());
If everything uses the default value, you can directly use the tao_orb_manager class to help create it.
2. Create an object and register the service
CORBA: object_var callback = orb-> callback (¡± nameservice callback ±); cosnaming: namingcontext_var naming_context = cosnaming: namingcontext: _ narrow (callback (); cosnaming:: Name (1 );
/// Create an object
Slib_channelfactory_ I channelfactory_ I (PoA. In (), poa_manager.in ());
/// Use the default POA for activation
: Slib: channelfactory_var channelfactory = channelfactory_ I. _ this ();
Name. Length (1 );
Name [0]. ID = CORBA: string_dup ("myfactory ");
STD: cout try {
Naming_context-> BIND (name, channelfactory. In ());
} Catch (cosnaming: namingcontext: alreadybound & Ex ){
Naming_context-> rebind (name, channelfactory. In ());
}