summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/ami4ccm/examples/Sender/Hello_Sender_exec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/connectors/ami4ccm/examples/Sender/Hello_Sender_exec.cpp')
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Sender/Hello_Sender_exec.cpp371
1 files changed, 371 insertions, 0 deletions
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Sender/Hello_Sender_exec.cpp b/modules/CIAO/connectors/ami4ccm/examples/Sender/Hello_Sender_exec.cpp
new file mode 100644
index 00000000000..03347fc85e0
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Sender/Hello_Sender_exec.cpp
@@ -0,0 +1,371 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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
+// http://doc.ece.uci.edu/
+// 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
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1278
+
+#include "Hello_Sender_exec.h"
+#include "ciao/CIAO_common.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_AMI_Sender_Impl
+{
+ //============================================================
+ // Facet Executor Implementation Class: MyFoo_callback_exec_i
+ //============================================================
+
+ MyFoo_callback_exec_i::MyFoo_callback_exec_i (void)
+ {
+ }
+
+ MyFoo_callback_exec_i::~MyFoo_callback_exec_i (void)
+ {
+ }
+
+ //============================================================
+ // Operations from ::CCM_AMI::MyFoo_callback
+ //============================================================
+
+ // FOO methods
+ void
+ MyFoo_callback_exec_i::foo_callback_handler (
+ ::CORBA::Long result,
+ const char * answer)
+ {
+ printf ("Sender (FOO) :\tCallback from AMI : result <%d> answer <%s>\n", result, answer);
+ }
+
+ void
+ MyFoo_callback_exec_i::foo_callback_excep (
+ const ::CCM_AMI::InternalException & exception_holder)
+ {
+ printf ("Sender (FOO) :\tCallback EXCEPTION from AMI : exception id : <%d> exception error : <%s>\n",
+ exception_holder.id, exception_holder.error_string.in ());
+ }
+
+ // HELLO methods
+ void
+ MyFoo_callback_exec_i::hello_callback_handler (
+ ::CORBA::Long answer)
+ {
+ printf ("Sender (FOO) :\tCallback from AMI (HELLO) : answer <%d>\n", answer);
+ }
+
+ void
+ MyFoo_callback_exec_i::hello_callback_excep (
+ const ::CCM_AMI::InternalException & exception_holder)
+ {
+ printf ("Sender (FOO) :\tCallback EXCEPTION from AMI (HELLO) : exception id : <%d> exception error : <%s>\n",
+ exception_holder.id, exception_holder.error_string.in ());
+ }
+
+ //============================================================
+ // Operations from ::CCM_AMI::MyInterface_callback
+ //============================================================
+ MyInterface_callback_exec_i::MyInterface_callback_exec_i ()
+ {
+ }
+
+ MyInterface_callback_exec_i::~MyInterface_callback_exec_i ()
+ {
+ }
+
+ void
+ MyInterface_callback_exec_i::do_something_with_something_callback_handler (
+ ::CORBA::Float result)
+ {
+ printf ("Sender (INTERFACE) :\tCallback from AMI : result <%f>\n", result);
+ }
+
+ void
+ MyInterface_callback_exec_i::do_something_with_something_callback_excep (
+ const ::CCM_AMI::InternalException & exception_holder)
+ {
+ printf ("Sender (INTERFACE) :\tCallback EXCEPTION from AMI : exception id : <%d> exception error : <%s>\n",
+ exception_holder.id, exception_holder.error_string.in ());
+ }
+
+ //============================================================
+ // Worker thread for asynchronous invocations for MyFoo
+ //============================================================
+ asynch_foo_generator::asynch_foo_generator (::CCM_AMI::AMI_MyFoo_ptr my_foo_ami)
+ : my_foo_ami_ (::CCM_AMI::AMI_MyFoo::_duplicate (my_foo_ami))
+ {
+ }
+
+ int asynch_foo_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ for (int i = 0; i < 5; ++i)
+ {
+ if (CORBA::is_nil (my_foo_ami_))
+ {
+ printf ("Sender (ASYNCH) :\tfoo_ami is NIL !!!\n");
+ return 1;
+ }
+ else
+ {
+ printf ("Sender (ASYNCH) :\tInvoke Asynchronous call\n");
+ my_foo_ami_->sendc_foo ("Do something asynchronous");
+ my_foo_ami_->sendc_hello ();
+ printf ("Sender (ASYNCH) :\tInvoked Asynchronous call\n");
+ }
+ }
+ printf ("Sender (ASYNCH) :\tInvoke Asynchronous call to test EXCEPTION HANDLING\n");
+ my_foo_ami_->sendc_foo ("");
+ printf ("Sender (ASYNCH) :\tInvoked Asynchronous call.\n");
+ return 0;
+ }
+
+ //============================================================
+ // Worker thread for synchronous invocations for MyFoo
+ //============================================================
+ synch_foo_generator::synch_foo_generator (::CCM_AMI::MyFoo_ptr my_foo_ami)
+ : my_foo_ami_ (::CCM_AMI::MyFoo::_duplicate (my_foo_ami))
+ {
+ }
+
+ int synch_foo_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ //run synch calls
+ char * out_str;
+ for (int i = 0; i < 5; ++i)
+ {
+ CORBA::Long result = my_foo_ami_->foo ("Do something synchronous", out_str);
+ printf ("Sender (SYNCH):\tInvoked synchronous call (FOO) result <%d> answer <%s>\n", result, out_str);
+ CORBA::Long answer;
+ my_foo_ami_->hello (answer);
+ printf ("Sender (SYNCH):\tInvoked synchronous call (HELLO) answer <%d>\n", answer);
+ }
+ try
+ {
+ CORBA::Long result = my_foo_ami_->foo ("", out_str);
+ printf ("Sender (SYNCH) :\tInvoked synchronous call result <%d> answer <%s>\n", result, out_str);
+ }
+ catch (CCM_AMI::InternalError& ex)
+ {
+ printf ("Sender (SYNCH) :\tExpected Exception caught : <%d> <%s>\n", ex.ex.id, ex.ex.error_string.in ());
+ }
+ return 0;
+ }
+
+ //============================================================
+ // Worker thread for asynchronous invocations for MyInterface
+ //============================================================
+ asynch_interface_generator::asynch_interface_generator (::CCM_AMI::AMI_MyInterface_ptr my_interface_ami)
+ : my_interface_ami_ (::CCM_AMI::AMI_MyInterface::_duplicate (my_interface_ami))
+ {
+ }
+
+ int asynch_interface_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ for (int i = 1; i < 15; ++i)
+ {
+ if (CORBA::is_nil (my_interface_ami_))
+ {
+ printf ("Sender (INTERFACE) :\tinterface_ami is NIL !!!\n");
+ return 1;
+ }
+ else
+ {
+ printf ("Sender (INTERFACE) :\tInvoke Asynchronous call\n");
+ //MyInterface_callback_exec_i* cb = new MyInterface_callback_exec_i ();
+ my_interface_ami_->sendc_do_something_with_something (0, i);
+ printf ("Sender (INTERFACE) :\tInvoked Asynchronous call\n");
+ }
+ }
+ printf ("Sender (INTERFACE) :\tInvoke Asynchronous call to test EXCEPTION HANDLING\n");
+ my_interface_ami_->sendc_do_something_with_something (0, 0);
+ printf ("Sender (INTERFACE) :\tInvoked Asynchronous call.\n");
+ return 0;
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //============================================================
+ Sender_exec_i::Sender_exec_i (void)
+ : global_foo_callback_ (0),
+ global_interface_callback_ (0)
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ ::CCM_AMI::CCM_AMI_MyFoo_callback_ptr
+ Sender_exec_i::get_the_my_foo_callback ()
+ {
+ if (CORBA::is_nil (global_foo_callback_))
+ {
+ global_foo_callback_ = new MyFoo_callback_exec_i ();
+ }
+
+ return global_foo_callback_;
+ }
+
+ ::CCM_AMI::CCM_AMI_MyInterface_callback_ptr
+ Sender_exec_i::get_the_my_interface_callback ()
+ {
+ if (CORBA::is_nil (global_interface_callback_))
+ {
+ global_interface_callback_ = new MyInterface_callback_exec_i ();
+ }
+
+ return global_interface_callback_;
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Hello_AMI::CCM_Sender_Context::_narrow (ctx);
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+
+ ::CCM_AMI::AMI_MyFoo_var asynch_foo =
+ this->context_->get_connection_run_asynch_my_foo();
+ asynch_foo_generator* asynch_foo_gen =
+ new asynch_foo_generator (asynch_foo);
+ asynch_foo_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+
+ ::CCM_AMI::MyFoo_var synch_foo =
+ this->context_->get_connection_run_my_foo ();
+ synch_foo_generator* synch_foo_gen =
+ new synch_foo_generator (synch_foo);
+ synch_foo_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+
+ ::CCM_AMI::AMI_MyInterface_var asynch_interface =
+ this->context_->get_connection_run_asynch_my_interface();
+ asynch_interface_generator* asynch_interface_gen =
+ new asynch_interface_generator (asynch_interface);
+ asynch_interface_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Sender_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
+namespace CIAO_Hello_AMI_Sender_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: SenderHome_exec_i
+ //============================================================
+
+ SenderHome_exec_i::SenderHome_exec_i (void)
+ {
+ }
+
+ SenderHome_exec_i::~SenderHome_exec_i (void)
+ {
+ }
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SenderHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Sender_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_SenderHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SenderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+