void GoodDay_i::test (void) { test::interop::wchar_tao_interop::GoodDay::WStringException e; ACE_WString wwhy(ACE_TEXT_ALWAYS_WCHAR ("WStringException test")); e.why = CORBA::wstring_dup(wwhy.c_str()); throw e; }
CORBA::WChar * GoodDay_i::hello_wide (const CORBA::WChar * msg) { ACE_WString w1( CORBA::wstring_dup( msg )); cout << w1 << endl; ACE_WString w(ACE_TEXT_ALWAYS_WCHAR ("aaaa")); return CORBA::wstring_dup( w.c_str() ); }
// ------------------------------------------------------------ // Client // ------------------------------------------------------------ int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { int error_count = 0; try { // Init the orb CORBA::ORB_var orb= CORBA::ORB_init (argc, argv); // Get IOR from command line (or file) if (parse_args (argc, argv) != 0) return 1; // The first arg should be the IOR CORBA::Object_var object = orb->string_to_object (ior); // Get the server simple_var server = simple::_narrow (object.in ()); const char *bare_string = "Hello World"; const char *any_string = "Any World"; CORBA::Any inarg; inarg <<= any_string; CORBA::Any_var outarg; // Invoke the call. CORBA::String_var reply = server->op1 (bare_string, inarg, outarg.out ()); const char *any_reply; outarg >>= any_reply; ACE_DEBUG ((LM_DEBUG, "Client sent %C, got %C\n", bare_string, reply.in ()) ); if (ACE_OS::strcmp (bare_string, reply.in ()) != 0) { ++error_count; } ACE_DEBUG ((LM_DEBUG, "Client sent %C, got %C\n", any_string, any_reply) ); if (ACE_OS::strcmp (any_string, any_reply) != 0) { ++error_count; } #if defined (ACE_HAS_WCHAR) wchar_t *wide_string = ACE_OS::strdup(ACE_TEXT_ALWAYS_WCHAR(ACE_TEXT ("Wide String"))); wchar_t *wide_reply = server->op2 (wide_string); ACE_DEBUG ((LM_DEBUG, "sent %W, got %W\n", wide_string, wide_reply)); ACE_OS::free (wide_string); CORBA::wstring_free (wide_reply); #endif /* ACE_HAS_WCHAR */ server->shutdown (); orb->destroy (); } catch (const CORBA::Exception& ex) { ex._tao_print_exception ("Exception caught in client:"); return 1; } return error_count; }