summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-03-04 22:32:30 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-03-04 22:32:30 +0000
commitd49c2dc3a14dfa0f38eda3e9a5e01e7db2a811da (patch)
tree1da03b3deb8c1e3ef0d6ce50262b05750b741383
parentaab3bb692eddf91a29d8842d38222bbc8f2329d0 (diff)
downloadATCD-d49c2dc3a14dfa0f38eda3e9a5e01e7db2a811da.tar.gz
ChangeLogTag:Mon Mar 04 17:29:25 2002 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a15
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp29
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/Roundtrip/client.cpp31
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.cpp32
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.h48
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/lib/EC_Destroyer.inl7
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/lib/Makefile8
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/lib/TAO_RTEC_Perf.dsp12
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