diff options
Diffstat (limited to 'TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerClient.cpp')
-rw-r--r-- | TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerClient.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerClient.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerClient.cpp new file mode 100644 index 00000000000..8d52a5af557 --- /dev/null +++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerClient.cpp @@ -0,0 +1,64 @@ +// $Id$ + +#include "orbsvcs/CosNamingC.h" +#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); + + CORBA::Object_var rootObj = + orb->resolve_initial_references("NameService"); + + CosNaming::NamingContext_var rootContext = + CosNaming::NamingContext::_narrow(rootObj.in()); + + CosNaming::Name name; + name.length (1); + name[0].id = CORBA::string_dup ("MessengerService"); + + CORBA::Object_var messengerObj = rootContext->resolve(name); + + if (CORBA::is_nil(messengerObj.in())) { + std::cerr << "Nil Messenger reference" << std::endl; + return 1; + } + + // Narrow + Messenger_var messenger = Messenger::_narrow(messengerObj.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( + "We are experiencing network problems."); + messenger->send_message ("sysadmin@company.com", + "urgent", + message.inout()); + + message = CORBA::string_dup("Where can I get TAO?"); + messenger->send_message ("person@company.com", + "OCI's Distribution of TAO", + message.inout()); + + message = CORBA::string_dup( + "Please contact sales@company.com regarding your request."); + messenger->send_message ("sysadmin@company.com", + "OCI's Distribution of TAO", + message.inout()); + + } + catch(const CORBA::Exception& ex) { + std::cerr << "Caught a CORBA exception: " << ex << std::endl; + return 1; + } + + std::cout << "MessengerClient: success" << std::endl; + return 0; +} + |