本文整理汇总了C++中corba::ORB_var::register_initial_reference方法的典型用法代码示例。如果您正苦于以下问题:C++ ORB_var::register_initial_reference方法的具体用法?C++ ORB_var::register_initial_reference怎么用?C++ ORB_var::register_initial_reference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corba::ORB_var
的用法示例。
在下文中一共展示了ORB_var::register_initial_reference方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: policies
int
ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
try
{
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
if (parse_args(argc, argv) != 0)
return 1;
// Get the RTORB.
CORBA::Object_var obj = orb->resolve_initial_references ("RTORB");
RTCORBA::RTORB_var rtorb = RTCORBA::RTORB::_narrow (obj.in());
//create the private connections policy. This means that every connection
// to the server uses his own socket.
CORBA::PolicyList policies (1);
policies.length (1);
policies[0] = rtorb->create_private_connection_policy ();
CORBA::Object_var pol_current_object = orb->resolve_initial_references ("PolicyCurrent");
CORBA::PolicyCurrent_var policy_current =
CORBA::PolicyCurrent::_narrow (pol_current_object.in ());
if (CORBA::is_nil (policy_current.in ()))
{
ACE_ERROR ((LM_ERROR, "ERROR: Nil policy current\n"));
return 1;
}
policy_current->set_policy_overrides (policies, CORBA::ADD_OVERRIDE);
Test::Hello_var *hello_array = 0;
ACE_NEW_RETURN (hello_array, Test::Hello_var [cache_size], -1);
int iter = 1;
for (iter = 1; iter <= cache_size; ++iter)
{
char object_string[256];
char reference_string[256];
ACE_OS::sprintf (reference_string, "TransportCacheTest%d", iter);
ACE_OS::sprintf (object_string, "corbaloc:iiop:localhost:%d/", port_nr);
ACE_OS::strcat (object_string, reference_string);
CORBA::Object_var hello_obj = orb->string_to_object (object_string);
orb->register_initial_reference (reference_string, hello_obj.in ());
CORBA::String_var ior_string = orb->object_to_string (hello_obj.in());
ACE_DEBUG((LM_DEBUG, ACE_TEXT("IOR string for reference %d : %C\n"),
iter, ior_string.in ()));
hello_array[iter-1] = Test::Hello::_narrow(hello_obj.in ());
}
//now we've got the references -> call each and everyone of them
for (iter = 0; iter < cache_size; ++iter)
{
Test::Hello_var hello = hello_array[iter];
if (CORBA::is_nil (hello.in ()))
{
ACE_ERROR_RETURN ((LM_DEBUG,
ACE_TEXT ("Nil Test::Hello reference\n")),
1);
}
CORBA::String_var the_string = hello->get_string ();
ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%C> from reference %d\n",
the_string.in (), iter + 1));
}
//shutdown the server
if (iter >= 0)
hello_array[0]->shutdown ();
orb->destroy ();
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception ("Exception caught:");
return 1;
}
return 0;
}