diff options
author | msmit <msmit@remedy.nl> | 2009-08-26 13:04:17 +0000 |
---|---|---|
committer | msmit <msmit@remedy.nl> | 2009-08-26 13:04:17 +0000 |
commit | 5ae1054d8b78dedfb50fe9ac8bd27747676ab14d (patch) | |
tree | e2bb27dab8f7f571b6a9c0dff15327aee6d117a7 | |
parent | 0fb467f0290fc52a364af6411bcc2f5d0885c10c (diff) | |
download | ATCD-5ae1054d8b78dedfb50fe9ac8bd27747676ab14d.tar.gz |
Wed Aug 26 13:04:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
* connectors/AMI_CCM/AMI/AMI_exec.h:
* connectors/AMI_CCM/AMI/AMI_exec.cpp:
* connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
* connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
* connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
Removed cookie from IDL interfaces.
-rw-r--r-- | modules/CIAO/ChangeLog | 9 | ||||
-rw-r--r-- | modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.cpp | 98 | ||||
-rw-r--r-- | modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.h | 45 | ||||
-rw-r--r-- | modules/CIAO/connectors/AMI_CCM/Hello_Base/Hello_Base.idl | 18 | ||||
-rw-r--r-- | modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp | 122 | ||||
-rw-r--r-- | modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.h | 4 |
6 files changed, 101 insertions, 195 deletions
diff --git a/modules/CIAO/ChangeLog b/modules/CIAO/ChangeLog index eedbca5ba6d..175def96f3c 100644 --- a/modules/CIAO/ChangeLog +++ b/modules/CIAO/ChangeLog @@ -1,3 +1,12 @@ +Wed Aug 26 13:04:12 UTC 2009 Marcel Smit <msmit@remedy.nl> + + * connectors/AMI_CCM/AMI/AMI_exec.h: + * connectors/AMI_CCM/AMI/AMI_exec.cpp: + * connectors/AMI_CCM/Hello_Base/Hello_Base.idl: + * connectors/AMI_CCM/Sender/Hello_Sender_exec.h: + * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp: + Removed cookie from IDL interfaces. + Wed Aug 26 08:59:26 UTC 2009 Marcel Smit <msmit@remedy.nl> * connectors/AMI_CCM/AMI/AMI.idl: diff --git a/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.cpp b/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.cpp index 66572ae397b..782a2224aff 100644 --- a/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.cpp +++ b/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.cpp @@ -35,44 +35,14 @@ namespace CIAO_Hello_AMI_AMI_Impl { -#if !defined (AMI_CORBA_IMPLEMENTATION) - //============================================================ - // Implementation of the basic form of AMI: a thread to handle - // asynchronous invocations. - //============================================================ - AMI_thread_handler::AMI_thread_handler ( - long ck, - const char * in_str, - ::CCM_AMI::AMI_foo_ptr foo_receiver, - ::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback) - : ck_ (ck), - in_str_ (in_str), - foo_receiver_ (::CCM_AMI::MyFoo::_duplicate (foo_receiver)), - foo_callback_ (::CCM_AMI::AMI_MyFoo_callback::_duplicate (foo_callback)) - { - } - - int AMI_thread_handler::svc () - { - char* out_str; - long result; - printf ("AMI :\tThread started for cookie <%ld> sending string <%s>\n", ck_, in_str_); - result = foo_receiver_->asynch_foo (CORBA::string_dup (in_str_), out_str); - printf ("AMI :\tCookie <%ld> received : result <%ld> answer <%s>\n", - ck_, result, out_str); - foo_callback_->foo_callback_handler (ck_, result, CORBA::string_dup (out_str)); - return 0; - } -#else //============================================================ // Implementation of the AMI CORBA reply handler //============================================================ class AMI_reply_handler : public POA_CCM_AMI::AMI_MyFooHandler { public: - AMI_reply_handler (::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback, long ck) - : foo_callback_ (::CCM_AMI::AMI_MyFoo_callback::_duplicate (foo_callback)), - ck_ (ck) + AMI_reply_handler (::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback) + : foo_callback_ (::CCM_AMI::AMI_MyFoo_callback::_duplicate (foo_callback)) { }; @@ -80,7 +50,7 @@ namespace CIAO_Hello_AMI_AMI_Impl const char * out_str) { printf ("AMI CORBA :\tHandler::asynch_foo\n"); - foo_callback_->foo_callback_handler (ck_, result, CORBA::string_dup (out_str)); + foo_callback_->foo_callback_handler (result, CORBA::string_dup (out_str)); this->_remove_ref (); }; @@ -94,20 +64,18 @@ namespace CIAO_Hello_AMI_AMI_Impl } catch (const CCM_AMI::InternalError& ex) { - printf ("AMI CORBA :\tCaught the correct exception type (CCM_AMI::InternalError) <%d> <%s> for cookie <%ld>\n", - ex.ex.id, ex.ex.error_string.in (), ck_); + printf ("AMI CORBA :\tCaught the correct exception type (CCM_AMI::InternalError) <%d> <%s>\n", + ex.ex.id, ex.ex.error_string.in ()); - foo_callback_->foo_callback_excep (ck_, ex.ex); + foo_callback_->foo_callback_excep (ex.ex); if (ex.ex.id != 42) { - printf ("ERROR :\tReceived unexpected ID received in exception handler for cookie <%ld>\n", - ck_); + printf ("ERROR :\tReceived unexpected ID received in exception handler\n"); } if (ACE_OS::strcmp (ex.ex.error_string.in (), "Hello world") != 0) { - printf ("ERROR :\tReceived unexpected error string received in exception handler for cookie <%ld>\n", - ck_); + printf ("ERROR :\tReceived unexpected error string received in exception handler\n"); } } catch (const CORBA::Exception& ex) @@ -122,28 +90,15 @@ namespace CIAO_Hello_AMI_AMI_Impl }; private: ::CCM_AMI::AMI_MyFoo_callback_var foo_callback_; - long ck_; }; -#endif /* AMI_CORBA_IMPLEMENTATION */ //============================================================ // Facet Executor Implementation Class: AMI_MyFoo_exec_i //============================================================ -#if !defined (AMI_CORBA_IMPLEMENTATION) AMI_MyFoo_exec_i::AMI_MyFoo_exec_i ( - ::CCM_AMI::AMI_MyFoo_ptr foo_receiver, - ::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback) : - foo_receiver_ (::CCM_AMI::MyFoo::_duplicate (foo_receiver)), - foo_callback_ (::CCM_AMI::AMI_MyFoo_callback::_duplicate (foo_callback)), - cookie_ (0) - { - } -#else - AMI_MyFoo_exec_i::AMI_MyFoo_exec_i ( - ::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback) : - foo_callback_ (::CCM_AMI::AMI_MyFoo_callback::_duplicate (foo_callback)), - cookie_ (0) + ::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback) + : foo_callback_ (::CCM_AMI::AMI_MyFoo_callback::_duplicate (foo_callback)) { //initialize AMI client int argc = 2; @@ -178,7 +133,6 @@ namespace CIAO_Hello_AMI_AMI_Impl AMI_perform_work *pw = new AMI_perform_work (orb.in ()); pw->activate (); } -#endif /* AMI_CORBA_IMPLEMENTATION */ AMI_MyFoo_exec_i::~AMI_MyFoo_exec_i (void) { @@ -186,31 +140,16 @@ namespace CIAO_Hello_AMI_AMI_Impl // Operations from ::CCM_AMI::AMI_ami_foo - ::CCM_AMI::Cookie + void AMI_MyFoo_exec_i::sendc_foo ( const char * in_str) { printf ("AMI :\tsendc_foo <%s>\n", in_str); - ++cookie_; -#if !defined (AMI_CORBA_IMPLEMENTATION) - // Single thread to perform asynchronous actions. - // No exception handling implemented. - printf ("AMI :\tReceived string <%s> for <%d>\n", in_str, cookie_); - AMI_thread_handler* ah = new AMI_thread_handler ( - cookie_, - in_str, - foo_receiver_.in ()), - foo_callback_.in ()); - ah->activate (); -#else - //AMI CORBA implementation. - AMI_reply_handler* handler = new AMI_reply_handler (foo_callback_.in (), cookie_); + AMI_reply_handler* handler = new AMI_reply_handler (foo_callback_); CCM_AMI::AMI_MyFooHandler_var the_handler_var = handler->_this (); - printf ("AMI :\tSending string <%s> for cookie <%ld> to AMI CORBA server\n", in_str, cookie_); + printf ("AMI :\tSending string <%s> to AMI CORBA server\n", in_str); ami_foo_var_->sendc_foo (the_handler_var.in (), in_str); printf ("AMI : \tInvoked sendc_foo\n"); -#endif /* AMI_CORBA_IMPLEMENTATION */ - return cookie_; } //============================================================ @@ -236,14 +175,7 @@ namespace CIAO_Hello_AMI_AMI_Impl { ::CCM_AMI::AMI_MyFoo_callback_var foo_callback = this->context_->get_connection_callback_foo (); - -#if !defined (AMI_CORBA_IMPLEMENTATION) - ::CCM_AMI::AMI_foo_var receiver_foo = - this->context_->get_connection_receiver_foo (); - return new AMI_MyFoo_exec_i (receiver_foo, foo_callback); -#else - return new AMI_MyFoo_exec_i (foo_callback); -#endif /* AMI_CORBA_IMPLEMENTATION */ + return new AMI_MyFoo_exec_i (foo_callback.in ()); } // Operations from Components::SessionComponent. @@ -270,13 +202,11 @@ namespace CIAO_Hello_AMI_AMI_Impl void AMI_exec_i::ccm_activate (void) { -#if defined (AMI_CORBA_IMPLEMENTATION) ::CCM_AMI::MyFoo_var receiver_foo = this->context_->get_connection_receiver_foo (); AMI_server* srv = new AMI_server (receiver_foo.in ()); printf ("AMI :\tStarting server thread.\n"); srv->activate (); -#endif /* AMI_CORBA_IMPLEMENTATION */ } void diff --git a/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.h b/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.h index 5ffde9cda26..53e350dd7a4 100644 --- a/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.h +++ b/modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.h @@ -42,42 +42,14 @@ #include "tao/LocalObject.h" #include "ace/Task.h" -#define AMI_CORBA_IMPLEMENTATION - namespace CIAO_Hello_AMI_AMI_Impl { -#if !defined (AMI_CORBA_IMPLEMENTATION) - //AMI thread implemenatation - class AMI_thread_handler : public virtual ACE_Task_Base - { - public: - AMI_thread_handler ( - long ck, - const char * in_str, - ::CCM_AMI::AMI_foo_ptr foo_receiver, - ::CCM_AMI::AMI_foo_callback_ptr foo_callback); - virtual int svc (void); - private: - long ck_; - const char * in_str_; - ::CCM_AMI::AMI_foo_var foo_receiver_; - ::CCM_AMI::AMI_foo_callback_var foo_callback_; - }; -#endif /* AMI_CORBA_IMPLEMENTATION */ - class AMI_MyFoo_exec_i : public virtual ::CCM_AMI::CCM_AMI_MyFoo, public virtual ::CORBA::LocalObject { public: -#if !defined (AMI_CORBA_IMPLEMENTATION) - AMI_MyFoo_exec_i ( - ::CCM_AMI::AMI_foo_ptr foo_receiver, - ::CCM_AMI::AMI_foo_callback_ptr foo_callback); -#else - AMI_MyFoo_exec_i ( - ::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback); -#endif /* AMI_CORBA_IMPLEMENTATION */ + AMI_MyFoo_exec_i (::CCM_AMI::AMI_MyFoo_callback_ptr foo_callback); virtual ~AMI_MyFoo_exec_i (void); @@ -86,20 +58,12 @@ namespace CIAO_Hello_AMI_AMI_Impl // TAO_IDL - Generated from // be/be_visitor_operation/operation_ch.cpp:46 - virtual ::CCM_AMI::Cookie + virtual void sendc_foo ( const char * in_str); private: -#if !defined (AMI_CORBA_IMPLEMENTATION) - ::CCM_AMI::AMI_foo_var foo_receiver_; -#endif /* AMI_CORBA_IMPLEMENTATION */ - ::CCM_AMI::AMI_MyFoo_callback_var foo_callback_; - long cookie_; - -#if defined (AMI_CORBA_IMPLEMENTATION) CCM_AMI::MyFoo_var ami_foo_var_; -#endif /* AMI_CORBA_IMPLEMENTATION */ - + ::CCM_AMI::AMI_MyFoo_callback_var foo_callback_; }; class AMI_exec_i @@ -132,7 +96,8 @@ namespace CIAO_Hello_AMI_AMI_Impl virtual void ccm_remove (void); private: - ::Hello_AMI::CCM_AMI_Context_var context_; + ::Hello_AMI::CCM_AMI_Context_var context_; + ::CCM_AMI::AMI_MyFoo_callback_var callback_foo_; }; extern "C" AMI_EXEC_Export ::Components::EnterpriseComponent_ptr diff --git a/modules/CIAO/connectors/AMI_CCM/Hello_Base/Hello_Base.idl b/modules/CIAO/connectors/AMI_CCM/Hello_Base/Hello_Base.idl index 95cb76b148f..7917e40b33b 100644 --- a/modules/CIAO/connectors/AMI_CCM/Hello_Base/Hello_Base.idl +++ b/modules/CIAO/connectors/AMI_CCM/Hello_Base/Hello_Base.idl @@ -4,19 +4,17 @@ module CCM_AMI { - typedef long Cookie; - + // callback interface from AMI-component to Sender component + interface AMI_MyFoo_callback + { + void foo_callback_handler (in long result, in string answer); + void foo_callback_excep (in CCM_AMI::InternalException exception_holder); + }; + // AMI component. Sender calls AMI-component and AMI-component calls Receiver // using the AMI_foo interface. interface AMI_MyFoo { - Cookie sendc_foo (in string in_str); - }; - - // callback interface from AMI-component to Sender component - interface AMI_MyFoo_callback - { - void foo_callback_handler (in Cookie ck, in long result, in string answer); - void foo_callback_excep (in Cookie ck, in CCM_AMI::InternalException exception_holder); + void sendc_foo (in string in_str); }; }; diff --git a/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp b/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp index 38c32f361a5..51c8a2e5c2a 100644 --- a/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp +++ b/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp @@ -34,100 +34,106 @@ 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 + + void + MyFoo_callback_exec_i::foo_callback_handler ( + ::CORBA::Long result, + const char * answer) + { + printf ("Sender :\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 :\tCallback EXCEPTION from AMI : cookie <%d> error <%s>\n", ck, exception_holder.error_string); + printf ("Sender :\tCallback EXCEPTION from AMI : exception id : <%d> exception error : <%s>\n", + exception_holder.id, exception_holder.error_string.in ()); + } + //============================================================ // Worker thread for asynchronous invocations //============================================================ asynch_generator::asynch_generator (::CCM_AMI::AMI_MyFoo_ptr foo_ami) - : foo_ami_ (::CCM_AMI::AMI_MyFoo::_duplicate (foo_ami)) + : foo_ami_ (::CCM_AMI::AMI_MyFoo::_duplicate (foo_ami)) { } int asynch_generator::svc () { - ACE_OS::sleep (2); - long cookie; + ACE_OS::sleep (3); for (int i = 0; i < 5; ++i) { if (CORBA::is_nil (foo_ami_)) - printf ("Sender (SYNCH) :\tfoo_receiver is NIL !!!\n"); + { + printf ("Sender (SYNCH) :\tfoo_receiver is NIL !!!\n"); + return 1; + } else { - cookie = foo_ami_->sendc_foo ("Do something asynchronous"); - printf ("Sender (SYNCH) :\tInvoked Asynchronous call. cookie <%ld>\n", cookie); + foo_ami_->sendc_foo ("Do something asynchronous"); + printf ("Sender (SYNCH) :\tInvoked Asynchronous call\n"); } } - + /* + printf ("GLOBAL REPLY HANDLER\n"); + for (int i = 0; i < 5; ++i) + { + foo_ami_->sendc_foo (0, "Do something asynchronous"); + printf ("Sender (SYNCH) :\tInvoked Asynchronous call\n"); + } +*/ printf ("Sender (SYNCH) :\tInvoke Asynchronous call to test EXCEPTION HANDLING\n"); - cookie = foo_ami_->sendc_foo (""); - printf ("Sender (SYNCH) :\tInvoked Asynchronous call. cookie <%ld>\n", cookie); + foo_ami_->sendc_foo (""); + printf ("Sender (SYNCH) :\tInvoked Asynchronous call.\n"); return 0; } - + //============================================================ // Worker thread for synchronous invocations //============================================================ synch_generator::synch_generator (::CCM_AMI::MyFoo_ptr foo_ami) - : foo_ami_ (::CCM_AMI::MyFoo::_duplicate (foo_ami)) + : foo_ami_ (::CCM_AMI::MyFoo::_duplicate (foo_ami)) { } int synch_generator::svc () { - ACE_OS::sleep (2); + ACE_OS::sleep (3); //run synch calls char * out_str; for (int i = 0; i < 5; ++i) - { - CORBA::Long result = foo_ami_->foo ("Do something synchronous", out_str); - printf ("Sender (SYNCH):\tInvoked synchronous call result <%d> answer <%s>\n", result, out_str); - } + { + CORBA::Long result = foo_ami_->foo ("Do something synchronous", out_str); + printf ("Sender (SYNCH):\tInvoked synchronous call result <%d> answer <%s>\n", result, out_str); + } try - { - CORBA::Long result = foo_ami_->foo ("", out_str); - printf ("Sender (SYNCH) :\tInvoked synchronous call result <%d> answer <%s>\n", result, out_str); - } + { + CORBA::Long result = 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 ()); - } + { + printf ("Sender (SYNCH) :\tExpected Exception caught : <%d> <%s>\n", ex.ex.id, ex.ex.error_string.in ()); + } return 0; } //============================================================ - // 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 - - void - MyFoo_callback_exec_i::foo_callback_handler ( - ::CCM_AMI::Cookie ck, - ::CORBA::Long result, - const char * answer) - { - printf ("Sender :\tCallback from AMI : cookie <%d> result <%d> answer <%s>\n", ck, result, answer); - } - - void - MyFoo_callback_exec_i::foo_callback_excep ( - ::CCM_AMI::Cookie ck, - const ::CCM_AMI::InternalException & exception_holder) - { - //printf ("Sender :\tCallback EXCEPTION from AMI : cookie <%d> error <%s>\n", ck, exception_holder.error_string); - printf ("Sender :\tCallback EXCEPTION from AMI : cookie <%d> exception id : <%d> exception error : <%s>\n", - ck, exception_holder.id, exception_holder.error_string.in ()); - } - - //============================================================ // Component Executor Implementation Class: Sender_exec_i //============================================================ @@ -148,7 +154,7 @@ namespace CIAO_Hello_AMI_Sender_Impl ::CCM_AMI::CCM_AMI_MyFoo_callback_ptr Sender_exec_i::get_the_foo_callback () { - return new MyFoo_callback_exec_i (); + return new MyFoo_callback_exec_i (); } // Operations from Components::SessionComponent. diff --git a/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.h b/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.h index cd95380a14c..b27154efc23 100644 --- a/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.h +++ b/modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.h @@ -85,7 +85,6 @@ namespace CIAO_Hello_AMI_Sender_Impl virtual void foo_callback_handler ( - ::CCM_AMI::Cookie ck, ::CORBA::Long result, const char * answer); @@ -94,7 +93,6 @@ namespace CIAO_Hello_AMI_Sender_Impl virtual void foo_callback_excep ( - ::CCM_AMI::Cookie ck, const ::CCM_AMI::InternalException & exception_holder); }; @@ -114,7 +112,7 @@ namespace CIAO_Hello_AMI_Sender_Impl virtual ::CCM_AMI::CCM_AMI_MyFoo_callback_ptr get_the_foo_callback (void); - + // Operations from Components::SessionComponent. virtual void |