summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsmit <msmit@remedy.nl>2009-08-26 13:04:17 +0000
committermsmit <msmit@remedy.nl>2009-08-26 13:04:17 +0000
commit5ae1054d8b78dedfb50fe9ac8bd27747676ab14d (patch)
treee2bb27dab8f7f571b6a9c0dff15327aee6d117a7
parent0fb467f0290fc52a364af6411bcc2f5d0885c10c (diff)
downloadATCD-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/ChangeLog9
-rw-r--r--modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.cpp98
-rw-r--r--modules/CIAO/connectors/AMI_CCM/AMI/AMI_exec.h45
-rw-r--r--modules/CIAO/connectors/AMI_CCM/Hello_Base/Hello_Base.idl18
-rw-r--r--modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp122
-rw-r--r--modules/CIAO/connectors/AMI_CCM/Sender/Hello_Sender_exec.h4
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