/** * * \file Receiver.cpp * \brief RTCORBA Server, holding one Object for setting digital Output * * \author Manuel Traut * \version 2006-10-15 * */ #include #include "benchI.h" #include "orbsvcs/CosNamingC.h" #include int main(int argc, char* argv[]){ try{ // initialize ORB CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "ServerORB"); std::cout<<"ORB initialized"<resolve_initial_references("RTORB"); RTCORBA::RTORB_var rtORB = RTCORBA::RTORB::_narrow(rtorb); std::cout<<"RT Extensions OK"<resolve_initial_references("RootPOA"); PortableServer::POA_var rootPOA = PortableServer::POA::_narrow(poa.in()); // activate POA Manager PortableServer::POAManager_var poaManager = rootPOA->the_POAManager(); poaManager->activate(); std::cout<<"rootPOA OK"<create_priority_model_policy(RTCORBA::CLIENT_PROPAGATED, RTCORBA::maxPriority); // create ObjectAdapter, assign Policy PortableServer::POA_var benchPOA = rootPOA->create_POA("benchPOA", poaManager.in(), benchPolicy); std::cout<<"Policy assigned"<activate_object(&bench_i); CORBA::Object_var benchObj = benchPOA->id_to_reference(objectID.in()); CORBA::String_var ior = orb->object_to_string(benchObj.in()); std::cout<<"Servant activated"<resolve_initial_references("NameService"); CosNaming::NamingContext_var namingContext = CosNaming::NamingContext::_narrow(namingObject.in()); CosNaming::Name name(1); name.length(1); name[0].id = CORBA::string_dup("Receiver"); namingContext->bind(name, benchObj.in()); std::cout<<"Bound Receiver to NameService"<run(); std::cout<<"ORB ready"<destroy(1,1); orb->destroy(); }catch(CORBA::Exception &any){ std::cout<<"Exception: "<