diff options
Diffstat (limited to 'TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerClient.cpp')
-rw-r--r-- | TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerClient.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerClient.cpp b/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerClient.cpp new file mode 100644 index 00000000000..76f812e7cff --- /dev/null +++ b/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerClient.cpp @@ -0,0 +1,39 @@ +/* -*- C++ -*- $Id$ */ + +#include "MessengerC.h" +#include <iostream> +int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init( argc, argv ); + + // Destringify ior + CORBA::Object_var obj = orb->string_to_object( "file://Messenger.ior" ); + if (CORBA::is_nil(obj.in())) { + std::cerr << "Nil Messenger reference" << std::endl; + return 1; + } + + // Narrow + Messenger_var messenger = Messenger::_narrow( obj.in() ); + if (CORBA::is_nil(messenger.in())) { + std::cerr << "Argument is not a Messenger reference" << std::endl; + return 1; + } + + CORBA::String_var message = CORBA::string_dup( + "Implementing security policy now!" ); + messenger->send_message( "Chief of Security", + "New Directive", + message.inout() ); + std::cout << "message was sent" << std::endl; + } + + catch(const CORBA::Exception& ex) { + std::cerr << "Caught CORBA excepti.o.n: " << ex << std::endl; + return 1; + } + + return 0; +} |