diff options
Diffstat (limited to 'TAO/CIAO/examples/handcrafted/Display/NavDisplay/client.cpp')
-rw-r--r-- | TAO/CIAO/examples/handcrafted/Display/NavDisplay/client.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/TAO/CIAO/examples/handcrafted/Display/NavDisplay/client.cpp b/TAO/CIAO/examples/handcrafted/Display/NavDisplay/client.cpp new file mode 100644 index 00000000000..6ccd27f4454 --- /dev/null +++ b/TAO/CIAO/examples/handcrafted/Display/NavDisplay/client.cpp @@ -0,0 +1,67 @@ +// $Id$ + +#include "NavDisplayC.h" + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv ACE_ENV_ARG_PARAMETER); + + // Resolve HomeFinder interface + + CORBA::Object_var obj + = orb->string_to_object ("file://NavDisplayHome.ior" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + HUDisplay::NavDisplayHome_var home + = HUDisplay::NavDisplayHome::_narrow (obj + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (home.in ())) + ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire NavDisplayHome objref\n"), -1); + + HUDisplay::NavDisplay_var navdisplay + = home->create(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + HUDisplay::tickConsumer_var consumer_refresh = + navdisplay->get_consumer_Refresh(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + HUDisplay::tick_var ev = new OBV_HUDisplay::tick (); + + ACE_Time_Value sleep_time (0, 20000); // 20 milliseconds + + for(unsigned i = 0; i < 1000; i++) + { + consumer_refresh->push_tick(ev.in() + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_OS::sleep(sleep_time); + } + + ACE_OS::sleep (5); + + home->remove_component (navdisplay.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Who is the culprit \n"); + cerr << "Uncaught CORBA exception" << endl; + return 1; + } + ACE_ENDTRY; + + return 0; +} |