- CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
- cout << "Obtain a reference to RootPOA and its Manager" << endl;
- CORBA::Object_var poaobj = orb->resolve_initial_references ("RootPOA");
- PortableServer::POA_var poa = PortableServer::POA::_narrow (poaobj);
- PortableServer::POAManager_var mgr = poa->the_POAManager();
- cout<< "Create an Account" << endl;
- PortableServer::Servant account_servant = new Account_impl;
- cout <<"Activate the Account" << endl;
- CORBA::Object_var the_account = account_servant->_this();
- cout << "Obtain a reference to the naming service object" << endl;
- CORBA::Object_var nsobj = orb->resolve_initial_references("NameService");
- cout << "Obtain a NamingCOntext" << endl;
- CosNaming::NamingContext_var nc = CosNaming::NamingContext::_narrow (nsobj);
- cout << "Export the account IOR to the naming service" << endl:
- CosNaming::Name name;
- name.length (1);
- name[0].id = (const char*) "myAccount";
- name[0].kind = (const char *) "";
- nc->rebind (name, the_account);
- cout<<"Activate the POA and start serving requests" << endl;
- cout<<"Runing." <<endl;
- mgr->activate();
- orb->run();
- cout <<"Shutdown (never reached)" << endl;
- poa->destroy(TRUE,TRUE);
- delete account_servant;
- return 0;
Raw Paste