diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-03-04 22:32:30 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-03-04 22:32:30 +0000 |
commit | d49c2dc3a14dfa0f38eda3e9a5e01e7db2a811da (patch) | |
tree | 1da03b3deb8c1e3ef0d6ce50262b05750b741383 | |
parent | aab3bb692eddf91a29d8842d38222bbc8f2329d0 (diff) | |
download | ATCD-d49c2dc3a14dfa0f38eda3e9a5e01e7db2a811da.tar.gz |
ChangeLogTag:Mon Mar 04 17:29:25 2002 Carlos O'Ryan <coryan@uci.edu>
8 files changed, 156 insertions, 26 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 82c52a4eb82..0782ac5e3c9 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,16 @@ +Mon Mar 04 17:29:25 2002 Carlos O'Ryan <coryan@uci.edu> + + * orbsvcs/performance-tests/RTEvent/lib/Makefile: + * orbsvcs/performance-tests/RTEvent/lib/TAO_RTEC_Perf.dsp: + * orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.h: + * orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.inl: + * orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.cpp: + Factor out code to destroy the EC into an exception safe class. + + * orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp: + * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp: + Use new EC_Destroyer class. + Mon Mar 4 13:38:11 2002 Jaiganesh Balasubramanian <jai@doc.ece.uci.edu> * tests/Hello/Makefile: @@ -24,7 +37,7 @@ Mon Mar 4 12:24:52 2002 Jeff Parsons <parsons@cs.wustl.edu> Removed Any_out's assignment operator from const Any *. The C++ mapping for Any_out is supposed to be the same as for any T_out - class, which contains no such assignment operator. Thanks to + class, which contains no such assignment operator. Thanks to Don Hinton <dhinton@ieee.org> for pointing this out. Mon Mar 4 11:47:17 2002 Jeff Parsons <parsons@cs.wustl.edu> diff --git a/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp b/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp index bdf17c89462..ded7a5f1ef6 100644 --- a/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp +++ b/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp @@ -11,6 +11,7 @@ #include "ORB_Task_Activator.h" #include "Auto_Disconnect.h" #include "Low_Priority_Setup.h" +#include "EC_Destroyer.h" #include "orbsvcs/Event_Service_Constants.h" @@ -155,6 +156,16 @@ int main (int argc, char *argv[]) ACE_DEBUG ((LM_DEBUG, "Finished ORB and POA configuration\n")); + ACE_Thread_Manager my_thread_manager; + + ORB_Task orb_task (orb); + orb_task.thr_mgr (&my_thread_manager); + ORB_Task_Activator orb_task_activator (rt_class.priority_high (), + rt_class.thr_sched_class (), + &orb_task); + + ACE_DEBUG ((LM_DEBUG, "ORB is active\n")); + CORBA::Object_var object = orb->string_to_object (ior ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -164,15 +175,14 @@ int main (int argc, char *argv[]) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - ACE_DEBUG ((LM_DEBUG, "Finished EC configuration and activation\n")); + EC_Destroyer ec_destroyer (ec.in ()); - ACE_Thread_Manager my_thread_manager; + CORBA::PolicyList_var inconsistent_policies; + (void) ec->_validate_connection (inconsistent_policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - ORB_Task orb_task (orb); - orb_task.thr_mgr (&my_thread_manager); - ORB_Task_Activator orb_task_activator (rt_class.priority_high (), - rt_class.thr_sched_class (), - &orb_task); + ACE_DEBUG ((LM_DEBUG, "Finished EC configuration and activation\n")); int thread_count = 1; if (disable_low_priority == 0) @@ -251,10 +261,7 @@ int main (int argc, char *argv[]) low_priority_setup.collect_basic_stats (low_priority_stats); low_priority_stats.dump_results ("Low Priority", gsf); - ec->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) client - starting cleanup\n")); } ACE_CATCHANY { diff --git a/TAO/orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp b/TAO/orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp index 3a51523bcd5..bbe972a5109 100644 --- a/TAO/orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp +++ b/TAO/orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp @@ -11,6 +11,7 @@ #include "Auto_Disconnect.h" #include "ORB_Task_Activator.h" #include "Low_Priority_Setup.h" +#include "EC_Destroyer.h" #include "orbsvcs/Event_Service_Constants.h" @@ -125,7 +126,7 @@ int main (int argc, char *argv[]) if (parse_args (argc, argv) != 0) return 1; - + RTServer_Setup rtserver_setup (use_rt_corba, orb, rt_class @@ -155,6 +156,16 @@ int main (int argc, char *argv[]) ACE_DEBUG ((LM_DEBUG, "Finished ORB and POA configuration\n")); + ACE_Thread_Manager my_thread_manager; + + ORB_Task orb_task (orb); + orb_task.thr_mgr (&my_thread_manager); + ORB_Task_Activator orb_task_activator (rt_class.priority_high (), + rt_class.thr_sched_class (), + &orb_task); + + ACE_DEBUG ((LM_DEBUG, "ORB is active\n")); + CORBA::Object_var object = orb->string_to_object (ior ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -164,15 +175,14 @@ int main (int argc, char *argv[]) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - ACE_DEBUG ((LM_DEBUG, "Finished EC configuration and activation\n")); + EC_Destroyer ec_destroyer (ec.in ()); - ACE_Thread_Manager my_thread_manager; + CORBA::PolicyList_var inconsistent_policies; + (void) ec->_validate_connection (inconsistent_policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - ORB_Task orb_task (orb); - orb_task.thr_mgr (&my_thread_manager); - ORB_Task_Activator orb_task_activator (rt_class.priority_high (), - rt_class.thr_sched_class (), - &orb_task); + ACE_DEBUG ((LM_DEBUG, "Finished EC configuration and activation\n")); int thread_count = 1; @@ -252,10 +262,7 @@ int main (int argc, char *argv[]) low_priority_setup.collect_basic_stats (low_priority_stats); low_priority_stats.dump_results ("Low Priority", gsf); - ec->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) client - starting cleanup\n")); } ACE_CATCHANY { diff --git a/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.cpp b/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.cpp new file mode 100644 index 00000000000..0b5c98dee66 --- /dev/null +++ b/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.cpp @@ -0,0 +1,32 @@ +/** + * @file EC_Destroyer.cpp + * + * $Id$ + * + * @author Carlos O'Ryan <coryan@uci.edu> + */ + +#include "EC_Destroyer.h" + +#if !defined(__ACE_INLINE__) +#include "EC_Destroyer.inl" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(TAO_PERF_RTEC, EC_Destroyer, "$Id$") + +EC_Destroyer::EC_Destroyer (RtecEventChannelAdmin::EventChannel_ptr ec) + : ec_ (RtecEventChannelAdmin::EventChannel::_duplicate (ec)) +{ +} + +EC_Destroyer::~EC_Destroyer (void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY { + this->ec_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } ACE_CATCH (CORBA::Exception, ex) { + // @@ TODO Log this event, check the Servant_var.cpp comments for + // details. + } ACE_ENDTRY; +} diff --git a/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.h b/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.h new file mode 100644 index 00000000000..1c160b0370d --- /dev/null +++ b/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.h @@ -0,0 +1,48 @@ +/** + * @file EC_Destroyer.h + * + * $Id$ + * + * @author Carlos O'Ryan <coryan@uci.edu> + */ + +#ifndef TAO_PERF_RTEC_EC_DESTROYER_H +#define TAO_PERF_RTEC_EC_DESTROYER_H + +#include "rtec_perf_export.h" +#include "orbsvcs/orbsvcs/RtecEventChannelAdminC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** + * @class EC_Destroyer + * + * @brief Implement a helper class to destroy a Real-time Event + * Channel. + * + */ +class TAO_RTEC_Perf_Export EC_Destroyer +{ +public: + /// Constructor + EC_Destroyer (RtecEventChannelAdmin::EventChannel_ptr ec); + + /// Destructor + /** + * @todo This method could benefit from the error logging described + * in Servant_var.cpp + */ + ~EC_Destroyer (void); + +private: + /// The event channel + RtecEventChannelAdmin::EventChannel_var ec_; +}; + +#if defined(__ACE_INLINE__) +#include "EC_Destroyer.inl" +#endif /* __ACE_INLINE__ */ + +#endif /* TAO_PERF_RTEC_EC_DESTROYER_H */ diff --git a/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.inl b/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.inl new file mode 100644 index 00000000000..8106257cde1 --- /dev/null +++ b/TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.inl @@ -0,0 +1,7 @@ +/** + * @file EC_Destroyer.inl + * + * $Id$ + * + * @author Carlos O'Ryan <coryan@uci.edu> + */ diff --git a/TAO/orbsvcs/performance-tests/RTEvent/lib/Makefile b/TAO/orbsvcs/performance-tests/RTEvent/lib/Makefile index 22fbe2628e0..07ad9f04b87 100644 --- a/TAO/orbsvcs/performance-tests/RTEvent/lib/Makefile +++ b/TAO/orbsvcs/performance-tests/RTEvent/lib/Makefile @@ -45,11 +45,15 @@ SRCS = \ PriorityBand_Setup \ Send_Task_Stopper \ ORB_Task_Activator \ - RTServer_Setup + RTServer_Setup \ + EC_Destroyer TEMPLATE_SOURCES = \ Servant_var \ - RT_Class + RT_Class \ + Low_Priority_Setup \ + Task_Activator + FILES = $(SRCS) DEFS = $(addsuffix .h,$(FILES)) LSRC = $(addsuffix .cpp,$(FILES)) diff --git a/TAO/orbsvcs/performance-tests/RTEvent/lib/TAO_RTEC_Perf.dsp b/TAO/orbsvcs/performance-tests/RTEvent/lib/TAO_RTEC_Perf.dsp index 2743ac4ab1e..545b8e998e2 100644 --- a/TAO/orbsvcs/performance-tests/RTEvent/lib/TAO_RTEC_Perf.dsp +++ b/TAO/orbsvcs/performance-tests/RTEvent/lib/TAO_RTEC_Perf.dsp @@ -106,6 +106,10 @@ SOURCE=.\Consumer.cpp # End Source File
# Begin Source File
+SOURCE=.\EC_Destroyer.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Loopback_Consumer.cpp
# End Source File
# Begin Source File
@@ -190,6 +194,10 @@ SOURCE=.\Consumer.h # End Source File
# Begin Source File
+SOURCE=.\EC_Destroyer.h
+# End Source File
+# Begin Source File
+
SOURCE=.\Loopback_Consumer.h
# End Source File
# Begin Source File
@@ -282,6 +290,10 @@ SOURCE=.\Client_Pair.inl # End Source File
# Begin Source File
+SOURCE=.\EC_Destroyer.inl
+# End Source File
+# Begin Source File
+
SOURCE=.\Loopback_Pair.inl
# End Source File
# Begin Source File
|