Esempio n. 1
0
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) {
  try {
    ORB_var orb = ORB_init (argc, argv);

    Object_var obj = orb->resolve_initial_references("RootPOA");
    POA_var root_poa = POA::_narrow(obj.in());
    POAManager_var poaman = root_poa->the_POAManager();
    obj = orb->resolve_initial_references ("IORTable");
    IORTable::Table_var ior_table = IORTable::Table::_narrow (obj.in());
    ACE_ASSERT(! is_nil(ior_table.in()));

    ACE_DEBUG((LM_DEBUG, "test_server: creating poas. (Registers with ImR)\n"));

    POA_var poa1 = createPersistPOA("TestObject1", root_poa.in(), poaman.in());
    POA_var poa2 = createPersistPOA("TestObject2", root_poa.in(), poaman.in());

    ACE_DEBUG((LM_DEBUG, "test_server: activating objects.\n"));

    test_i svt1, svt2;

    ObjectId_var id = string_to_ObjectId("myobject");

    poa1->activate_object_with_id(id.in(), &svt1);
    poa2->activate_object_with_id(id.in(), &svt2);

    TAO_Root_POA* tmp_poa = dynamic_cast<TAO_Root_POA*>(poa1.in());
    obj = tmp_poa->id_to_reference_i (id.in(), false);
    String_var ior = orb->object_to_string(obj.in());
    ior_table->bind ("TestObject1", ior.in());

    tmp_poa = dynamic_cast<TAO_Root_POA*>(poa2.in());
    obj = tmp_poa->id_to_reference_i (id.in(), false);
    ior = orb->object_to_string(obj.in());
    ior_table->bind ("TestObject2", ior.in());

    poaman->activate();

    ACE_DEBUG((LM_DEBUG, "test_server: Running...\n"));

    orb->run();

    ACE_DEBUG((LM_DEBUG, "test_server: Shutting down...\n"));

    root_poa->destroy(1, 1);
    orb->destroy();

  } catch (CORBA::Exception& e) {
    e._tao_print_exception ("TestServer::init()");
  }
  return 0;
}
Esempio n. 2
0
int ACE_TMAIN (int ac, ACE_TCHAR *av[])
{
  try
    {
      ORB_var orb = ORB_init (ac, av);

      if (!parse_command_line (ac, av))
        {
          return 1;
        }

      POA_var poa = create_poa (orb.in ());
      ACE_ASSERT (! is_nil (poa.in ()));

      Tester_i svt (orb.in ());

      ObjectId_var id = string_to_ObjectId ("tester");

      poa->activate_object_with_id (id.in (), &svt);
      Object_var obj = poa->id_to_reference (id.in ());
      String_var ior = orb->object_to_string (obj.in ());
      WriteIOR (ior.in ());

      cout << "Servants registered and activated." << endl;

      if (activate_delay > 0)
        {
          ACE_OS::sleep (ACE_Time_Value (0, activate_delay * 1000));
        }
      POAManager_var man = poa->the_POAManager ();
      man->activate ();

      cout << "POAManager activated." << endl;

      if (run_delay > 0)
        {
          ACE_OS::sleep (ACE_Time_Value (0, run_delay * 1000));
        }
      cout << "Running orb..." << endl;

      orb->run ();

      if (svt.failed ())
        {
          return 1;
        }

      return 0;
    }
  catch (CORBA::Exception &ex)
    {
      ex._tao_print_exception ("server:");
    }

  return 1;
}
Esempio n. 3
0
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
  try {

    ACE_Service_Config config;
    config.open (argc, argv);

    ORB_var orb = ORB_init (argc, argv);

    Object_var obj = orb->resolve_initial_references("RootPOA");
    POA_var poa = POA::_narrow(obj.in());
    ACE_ASSERT(! is_nil(poa.in()));
    POAManager_var poaman = poa->the_POAManager();

    SvcConf svt(config);

    ObjectId_var id = poa->activate_object(&svt);
    obj = poa->id_to_reference(id.in());
    ACE_ASSERT(! is_nil(obj.in()));
    String_var ior = orb->object_to_string(obj.in());

    poaman->activate();

    {
      ofstream out("combined.ior");
      out << ior;
    }

    ACE_DEBUG((LM_DEBUG, "Combined service started.\n"));

    orb->run();

    ACE_DEBUG((LM_DEBUG, "Combined service shutdown.\n"));

    poa->destroy(1, 1);
    orb->destroy();

  } catch (const CORBA::Exception& e) {
    e._tao_print_exception ("Combined Service:");
  }
  return 0;
}