summaryrefslogtreecommitdiff
path: root/CIAO/connectors/ami4ccm/tests/PragmaT/Sender/PragmaT_Sender_exec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/ami4ccm/tests/PragmaT/Sender/PragmaT_Sender_exec.cpp')
-rw-r--r--CIAO/connectors/ami4ccm/tests/PragmaT/Sender/PragmaT_Sender_exec.cpp400
1 files changed, 400 insertions, 0 deletions
diff --git a/CIAO/connectors/ami4ccm/tests/PragmaT/Sender/PragmaT_Sender_exec.cpp b/CIAO/connectors/ami4ccm/tests/PragmaT/Sender/PragmaT_Sender_exec.cpp
new file mode 100644
index 00000000000..a52de2e9d1b
--- /dev/null
+++ b/CIAO/connectors/ami4ccm/tests/PragmaT/Sender/PragmaT_Sender_exec.cpp
@@ -0,0 +1,400 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.8.3
+ * TAO and the TAO IDL Compiler have been developed by:
+ * Center for Distributed Object Computing
+ * Washington University
+ * St. Louis, MO
+ * USA
+ * http://www.cs.wustl.edu/~schmidt/doc-center.html
+ * and
+ * Distributed Object Computing Laboratory
+ * University of California at Irvine
+ * Irvine, CA
+ * USA
+ * and
+ * Institute for Software Integrated Systems
+ * Vanderbilt University
+ * Nashville, TN
+ * USA
+ * http://www.isis.vanderbilt.edu/
+ *
+ * Information about TAO is available at:
+ * http://www.cs.wustl.edu/~schmidt/TAO.html
+ **/
+
+#include "PragmaT_Sender_exec.h"
+
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_PragmaT_Sender_Impl
+{
+ void HandleException (
+ long id,
+ const char* error_string,
+ const char* func)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (%C) :\tCallback except from AMI.\n"),
+ func));
+ if (id != 42)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("ERROR (%C) :\tReceived unexpected ID received")
+ ACE_TEXT(" in except handler.\n"),
+ func));
+ return;
+ }
+ if (ACE_OS::strcmp (error_string, "PragmaT world") != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("ERROR (%C) :\tReceived unexpected error string")
+ ACE_TEXT(" received in except handler.\n"),
+ func));
+ return;
+ }
+ }
+
+ void HandleException (
+ ::CCM_AMI::ExceptionHolder_ptr excep_holder,
+ const char* func)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (%C) :\tHandle except AMI\n"), func));
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (const PragmaT::InternalError& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender: Caught the correct except type")
+ ACE_TEXT(" <%u> <%C>\n"),
+ ex.id, ex.error_string.in ()));
+ HandleException (ex.id, ex.error_string.in (), func);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("ERROR: Caught unexpected except:");
+ }
+ }
+
+ //============================================================
+ // Worker thread for asynchronous invocations for MyFoo
+ //============================================================
+ asynch_foo_generator::asynch_foo_generator (
+ ::PragmaT::CCM_Sender_Context_ptr context)
+ : context_(::PragmaT::CCM_Sender_Context::_duplicate (context))
+ {
+ }
+
+ int asynch_foo_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ ::PragmaT::AMI4CCM_MyFoo_var my_foo_ami_ =
+ context_->get_connection_sendc_run_my_foo();
+
+ if (CORBA::is_nil (my_foo_ami_))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("ERROR Sender (ASYNCH) :")
+ ACE_TEXT("\tfoo_ami is NIL !!!\n")));
+ return 1;
+ }
+ ::PragmaT::CCM_AMI4CCM_MyFooReplyHandler_var cb =
+ new AMI4CCM_MyFooReplyHandler_run_my_foo_i ();
+
+ for (int i = 0; i < 5; ++i)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (ASYNCH) :")
+ ACE_TEXT("\tInvoke Asynchronous calls\n")));
+ my_foo_ami_->sendc_foo (cb.in (),
+ "Do something asynchronous");
+ my_foo_ami_->sendc_hello (cb.in ());
+ my_foo_ami_->sendc_get_rw_attrib(cb.in ());
+ my_foo_ami_->sendc_get_rw_attrib(cb.in ());
+ my_foo_ami_->sendc_set_rw_attrib(cb.in (), 15);
+ my_foo_ami_->sendc_get_ro_attrib(cb.in ());
+ my_foo_ami_->sendc_get_ro_attrib(cb.in ());
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (ASYNCH) :\tInvoked Asynchronous calls\n")));
+ }
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (ASYNCH) :\tInvoke Asynchronous calls ")
+ ACE_TEXT("to test except handling\n")));
+ my_foo_ami_->sendc_foo (cb.in (), "");
+ my_foo_ami_->sendc_set_rw_attrib(cb.in (), 0);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (ASYNCH) :\tInvoked Asynchronous call.\n")));
+ return 0;
+ }
+
+ //============================================================
+ // Worker thread for synchronous invocations for MyFoo
+ //============================================================
+ synch_foo_generator::synch_foo_generator (
+ ::PragmaT::CCM_Sender_Context_ptr context)
+ : context_(::PragmaT::CCM_Sender_Context::_duplicate (context))
+ {
+ }
+
+ int synch_foo_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ ::PragmaT::MyFoo_var my_foo_ami_ =
+ context_->get_connection_run_my_foo ();
+
+ //run synch calls
+ CORBA::String_var out_str;
+ for (int i = 0; i < 5; ++i)
+ {
+ CORBA::Long result = my_foo_ami_->foo ("Do something synchronous",
+ out_str.out ());
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH):\tInvoked synchronous call (FOO)")
+ ACE_TEXT(" result <%u> answer <%C>\n"), result, out_str.in ()));
+
+ CORBA::Long answer;
+ my_foo_ami_->hello (answer);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH):\tInvoked synchronous call ")
+ ACE_TEXT("(PRAGMAT) answer <%u>\n"), answer));
+
+ try
+ {
+ CORBA::Short rw_attrib = my_foo_ami_->rw_attrib ();
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH):\tInvoked synchronous call ")
+ ACE_TEXT("(GET_RW_ATTRIB) answer <%u>\n"), rw_attrib));
+ }
+ catch (const PragmaT::InternalError& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH FOO) :\tExpected Except caught :")
+ ACE_TEXT(" <%u> <%C>\n"), ex.id, ex.error_string.in ()));
+ }
+
+ try
+ {
+ my_foo_ami_->rw_attrib (15);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH):\tInvoked synchronous call ")
+ ACE_TEXT("(SET_RW_ATTRIB) to <15>\n")));
+ }
+ catch (const PragmaT::InternalError& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH FOO) :\tExpected Except caught :")
+ ACE_TEXT(" <%u> <%C>\n"), ex.id, ex.error_string.in ()));
+ }
+
+ try
+ {
+ CORBA::Short ro_attrib = my_foo_ami_->ro_attrib ();
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH):\tInvoked synchronous call ")
+ ACE_TEXT("(GET_RO_ATTRIB) answer <%u>\n"), ro_attrib));
+ }
+ catch (const PragmaT::InternalError& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH FOO) :\tExpected Except caught :")
+ ACE_TEXT(" <%u> <%C>\n"), ex.id, ex.error_string.in ()));
+ }
+ }
+ try
+ {
+ CORBA::Long result = my_foo_ami_->foo ("", out_str.out ());
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH) :\tInvoked synchronous call result ")
+ ACE_TEXT("<%u> answer <%C>\n"), result, out_str.in ()));
+ }
+ catch (const PragmaT::InternalError& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH FOO) :\tExpected Except caught : ")
+ ACE_TEXT("<%u> <%C>\n"), ex.id, ex.error_string.in ()));
+ }
+ try
+ {
+ my_foo_ami_->rw_attrib (0);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH) :\tInvoked synchronous call rw_attrib\n")));
+ }
+ catch (const PragmaT::InternalError& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (SYNCH RW_ATTRIB) :\tExpected Except caught :")
+ ACE_TEXT(" <%u> <%C>\n"), ex.id, ex.error_string.in ()));
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("ERROR: Caught unexpected except:");
+ }
+ return 0;
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //============================================================
+ Sender_exec_i::Sender_exec_i (void)
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+ // Operations from Components::SessionComponent.
+
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::PragmaT::CCM_Sender_Context::_narrow (ctx);
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+ this->asynch_foo_gen_ =
+ new asynch_foo_generator (this->context_.in ());
+ this->asynch_foo_gen_->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+ this->synch_foo_gen_ =
+ new synch_foo_generator (this->context_.in());
+ this->synch_foo_gen_->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ delete this->asynch_foo_gen_;
+ this->asynch_foo_gen_ = 0;
+ delete this->synch_foo_gen_;
+ this->synch_foo_gen_ = 0;
+ }
+
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::AMI4CCM_MyFooReplyHandler_run_my_foo_i (void)
+ {
+ }
+
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::~AMI4CCM_MyFooReplyHandler_run_my_foo_i (void)
+ {
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::foo (
+ ::CORBA::Long ami_return_val,
+ const char * answer)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (FOO) :\tCallback from AMI: result <%u> ")
+ ACE_TEXT("answer <%C>\n"), ami_return_val, answer));
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::foo_excep (
+ ::CCM_AMI::ExceptionHolder_ptr excep_holder)
+ {
+ HandleException (excep_holder, "FOO");
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::hello (
+ ::CORBA::Long answer)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (FOO) :\tCallback from AMI (PRAGMAT) :")
+ ACE_TEXT(" answer <%u>\n"), answer));
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::hello_excep (
+ ::CCM_AMI::ExceptionHolder_ptr excep_holder)
+ {
+ HandleException (excep_holder, "PRAGMAT");
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::get_rw_attrib (
+ ::CORBA::Short ami_return_val)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (RW_ATTRIB) :\tCallback from AMI (RW_ATTRIB):")
+ ACE_TEXT(" answer <%u>\n"), ami_return_val));
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::get_rw_attrib_excep (
+ ::CCM_AMI::ExceptionHolder_ptr excep_holder)
+ {
+ HandleException (excep_holder, "GET RW_ATTRIB");
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::set_rw_attrib (void)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (RW_ATTRIB) :\tCallback from ")
+ ACE_TEXT("AMI (RW_ATTRIB)\n")));
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::set_rw_attrib_excep (
+ ::CCM_AMI::ExceptionHolder_ptr excep_holder)
+ {
+ HandleException (excep_holder, "SET_RW_ATTRIB");
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::get_ro_attrib (
+ ::CORBA::Short ro_attrib)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Sender (RO_ATTRIB) :\tCallback from AMI ")
+ ACE_TEXT("(RO_ATTRIB) : answer <%u>\n"), ro_attrib));
+ }
+
+ void
+ AMI4CCM_MyFooReplyHandler_run_my_foo_i::get_ro_attrib_excep (
+ ::CCM_AMI::ExceptionHolder_ptr excep_holder)
+ {
+ HandleException (excep_holder, "RO_ATTRIB");
+ }
+
+ extern "C" PRAGMAT_SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_PragmaT_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Sender_exec_i);
+
+ return retval;
+ }
+}