summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorvenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-05-18 01:02:48 +0000
committervenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-05-18 01:02:48 +0000
commit45465ce976cabd6346aef087d14b6a1133b5021f (patch)
tree6fb94ee1dccbe3afd43ba0eedba86d598201170d /TAO
parent3ec406d8235f4e6892c1e2ae414f77d65b1dec99 (diff)
downloadATCD-45465ce976cabd6346aef087d14b6a1133b5021f.tar.gz
Mon May 17 16:16:37 2004 Venkita Subramonian <venkita@cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r--TAO/CIAO/ciao/CIAO_common.h22
-rw-r--r--TAO/CIAO/ciao/Client_init.cpp22
-rw-r--r--TAO/CIAO/ciao/ComponentInstallation_Impl.cpp6
-rw-r--r--TAO/CIAO/ciao/ServerActivator_Impl.cpp32
-rw-r--r--TAO/CIAO/ciao/ServerActivator_Impl.h6
-rw-r--r--TAO/CIAO/examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp30
-rw-r--r--TAO/CIAO/examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp18
-rw-r--r--TAO/CIAO/examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp23
-rw-r--r--TAO/CIAO/examples/OEP/BasicSP/EC/EC_exec.cpp32
-rw-r--r--TAO/CIAO/examples/OEP/BasicSP/EC/client.cpp1
-rw-r--r--TAO/CIAO/examples/OEP/BasicSP/EC/controller.cpp4
-rw-r--r--TAO/CIAO/examples/OEP/Display/GPS/GPS_exec.cpp14
-rw-r--r--TAO/CIAO/examples/OEP/Display/GPS/GPS_tracing_exec.cpp13
-rw-r--r--TAO/CIAO/examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp12
-rw-r--r--TAO/CIAO/examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp38
-rw-r--r--TAO/CIAO/examples/OEP/Display/RateGen/RateGen_exec.cpp32
-rw-r--r--TAO/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp15
-rw-r--r--TAO/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp26
-rwxr-xr-xTAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl4
-rwxr-xr-xTAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl4
-rw-r--r--TAO/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp6
-rw-r--r--TAO/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc2
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.cidl12
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.idl29
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.mpc92
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/ControllerEI.idl32
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.cpp160
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.h114
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_stub_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_svnt_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.cpp113
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.h75
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.cpp221
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.h163
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/client.cpp131
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.idl46
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.mpc30
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_stub_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_svnt_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp127
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.h117
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp115
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h117
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/README20
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.cidl12
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.idl29
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.mpc78
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/WorkerEI.idl33
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_exec_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_stub_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_svnt_export.h54
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CB_Worker.csd64
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CIAO_Installation_Data.ini7
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.csd64
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.ssd48
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller25.csd64
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller50.csd64
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller75.csd64
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/IOB_Worker.csd64
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/NOTE-win.txt88
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/RTsvc.conf4
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Worker.ssd48
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic-remote.cad55
-rwxr-xr-xTAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_remote.pl99
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_rt.rtd109
-rwxr-xr-xTAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_test.pl173
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/bench.conf3
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-25.cad52
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-50.cad52
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo.cad52
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/no-rt-3rates.cad104
-rwxr-xr-xTAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rate_test.pl193
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/remote.dat2
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-dec.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-inc.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-dec.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-inc.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-dec.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-inc.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-dec.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-inc.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-dec.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-inc.cad124
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/shared_rt.rtd95
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/svcmap.dat3
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.dat2
-rw-r--r--TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.rtd93
-rw-r--r--TAO/CIAO/tools/Assembly_Deployer/Assembly_Deployer.cpp195
-rw-r--r--TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.cpp34
-rw-r--r--TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.h1
-rw-r--r--TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.inl7
-rw-r--r--TAO/CIAO/tools/Assembly_Deployer/Assembly_Visitors.cpp52
-rw-r--r--TAO/CIAO/tools/Assembly_Deployer/README37
-rw-r--r--TAO/CIAO/tools/ComponentServer/ComponentServer.cpp44
-rw-r--r--TAO/CIAO/tools/Daemon/CIAO_Daemon.cpp21
-rw-r--r--TAO/CIAO/tools/RTComponentServer/ComponentServer_Task.cpp14
-rw-r--r--TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.cpp7
-rw-r--r--TAO/CIAO/tools/ServerActivator/ServerActivator.cpp2
-rw-r--r--TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp25
-rw-r--r--TAO/CIAO/tools/XML_Helpers/RTConfig_Handlers.cpp7
-rw-r--r--TAO/CIAO/tools/XML_Helpers/Svcconf_Handler.cpp6
-rw-r--r--TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc2
103 files changed, 5818 insertions, 202 deletions
diff --git a/TAO/CIAO/ciao/CIAO_common.h b/TAO/CIAO/ciao/CIAO_common.h
index 627bbbefacf..e933c75fe32 100644
--- a/TAO/CIAO/ciao/CIAO_common.h
+++ b/TAO/CIAO/ciao/CIAO_common.h
@@ -18,6 +18,8 @@
#pragma once
#endif /* ! ACE_LACKS_PRAGMA_ONCE */
+#include "CIAO_Client_Export.h"
+
#define CIAO_REGISTER_VALUE_FACTORY(ORB,FACTORY,VALUETYPE) {\
CORBA::ValueFactory factory = new FACTORY; \
CORBA::ValueFactory prev_factory = \
@@ -27,5 +29,25 @@
if (prev_factory) prev_factory->_remove_ref (); \
factory->_remove_ref (); }
+namespace CIAO
+{
+ /**
+ * Return the debug level. The debug level of CIAO is control by
+ * an environment variable "CIAO_DEBUG_LEVEL". It should be an int
+ * value. If it is not defined, the default debug level is 0. The
+ * value of debug value is evaluated on its first use and the value
+ * is then cached. The actual implementation of this function is in
+ * Client_init.cpp.
+ *
+ * Some recommendation for using the debug_level
+ *
+ * > 0 : For component users. Component developers are encouraged
+ * to develop their own
+ * > 10 : For CIAO tools
+ * > 20 : For CIAO core.
+ */
+ CIAO_CLIENT_Export int debug_level (void);
+}
+
#include /**/ "ace/post.h"
#endif /* CIAO_COMMON_H */
diff --git a/TAO/CIAO/ciao/Client_init.cpp b/TAO/CIAO/ciao/Client_init.cpp
index b11d6b96dde..93d83982ee8 100644
--- a/TAO/CIAO/ciao/Client_init.cpp
+++ b/TAO/CIAO/ciao/Client_init.cpp
@@ -4,6 +4,7 @@
#include "CIAO_common.h"
#include "CCM_ComponentC.h"
#include "CIAO_ValueC.h"
+#include "ace/Env_Value_T.h"
int
CIAO::Client_init (CORBA::ORB_ptr o)
@@ -34,3 +35,24 @@ CIAO::Client_init (CORBA::ORB_ptr o)
Components::ComponentPortDescription);
return 0;
}
+
+/// This should really be an anonymous namespace, but some compilers
+/// still don't support this features. Therefore, just use a long
+/// namespace name here.
+namespace ciao_anonymous_namespace
+{
+ int debug_level = -1;
+}
+
+int
+CIAO::debug_level (void)
+{
+ if (ciao_anonymous_namespace::debug_level == -1)
+ {
+ // Initialize the thing.
+ ACE_Env_Value<int> envar ("CIAO_DEBUG_LEVEL", 0);
+ ciao_anonymous_namespace::debug_level = envar;
+ }
+
+ return ciao_anonymous_namespace::debug_level;
+}
diff --git a/TAO/CIAO/ciao/ComponentInstallation_Impl.cpp b/TAO/CIAO/ciao/ComponentInstallation_Impl.cpp
index 1f979d1e881..dd43aef60fe 100644
--- a/TAO/CIAO/ciao/ComponentInstallation_Impl.cpp
+++ b/TAO/CIAO/ciao/ComponentInstallation_Impl.cpp
@@ -50,8 +50,10 @@ CIAO::ComponentInstallation_Impl::init (const char *fname,
ACE_Ini_ImpExp import (*config);
if (import.import_config (fname) != 0)
- ACE_THROW_RETURN (CORBA::INTERNAL (), -1);
-
+ {
+ ACE_DEBUG ((LM_ERROR, "Unable to import from installation datafile: %s\n", fname));
+ ACE_THROW_RETURN (CORBA::INTERNAL (), -1);
+ }
this->installation_ = config.release ();
return 0;
diff --git a/TAO/CIAO/ciao/ServerActivator_Impl.cpp b/TAO/CIAO/ciao/ServerActivator_Impl.cpp
index f2a4fd0e277..315800b8427 100644
--- a/TAO/CIAO/ciao/ServerActivator_Impl.cpp
+++ b/TAO/CIAO/ciao/ServerActivator_Impl.cpp
@@ -4,6 +4,7 @@
#include "ace/Process.h"
#include "ace/Read_Buffer.h"
#include "ace/OS_NS_stdio.h"
+#include "CIAO_common.h"
#if !defined (__ACE_INLINE__)
# include "ServerActivator_Impl.inl"
@@ -66,7 +67,8 @@ CIAO::ServerActivator_Impl::init (const char *server_location,
CORBA::ULong spawn_delay,
const char *installation_ior,
const char *default_svcconf,
- const char *svc_conf_map
+ const char *svc_conf_map,
+ const char *extra_flags
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
@@ -88,6 +90,9 @@ CIAO::ServerActivator_Impl::init (const char *server_location,
if (default_svcconf != 0)
this->default_svcconf_file_ = default_svcconf;
+ if (extra_flags != 0)
+ this->extra_flags_ = extra_flags;
+
this->server_path_ = CORBA::string_dup (server_location);
this->installation_ior_ = CORBA::string_dup (installation_ior);
@@ -164,15 +169,17 @@ CIAO::ServerActivator_Impl::init_svcconf_map (const char *filename)
case 0:
// All is fine.
// Debug info:
- ACE_DEBUG ((LM_DEBUG,
- "Bound svc.conf hint \"%s\" successfully\n",
- hint.c_str ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "Bound svc.conf hint \"%s\" successfully\n",
+ hint.c_str ()));
break;
case 1:
- ACE_DEBUG ((LM_DEBUG,
- "Duplication svc.conf hint \"%s\" found - ignore\n",
- hint.c_str ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "Duplication svc.conf hint \"%s\" found - ignore\n",
+ hint.c_str ()));
break;
case -1:
@@ -276,7 +283,8 @@ CIAO::ServerActivator_Impl::create_component_server (const Components::ConfigVal
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- ACE_DEBUG ((LM_DEBUG, "CIAO::ServerActivator_Impl::create_component_server\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "CIAO::ServerActivator_Impl::create_component_server\n"));
Components::Deployment::ComponentServer_var retval;
@@ -328,8 +336,9 @@ CIAO::ServerActivator_Impl::create_component_server (const Components::ConfigVal
if (svcconf_path != 0)
{
- ACE_DEBUG((LM_DEBUG, "Using svcconf file: %s\n",
- svcconf_path));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG((LM_DEBUG, "Using svcconf file: %s\n",
+ svcconf_path));
additional_options += ACE_CString (" -ORBSvcConf ");
additional_options += ACE_CString (svcconf_path);
}
@@ -342,6 +351,9 @@ CIAO::ServerActivator_Impl::create_component_server (const Components::ConfigVal
additional_options += ACE_CString (config_info.rtcad_filename_.in ());
}
+ additional_options += " ";
+ additional_options += this->extra_flags_;
+
options.command_line ("%s -k %s -ORBInitRef ComponentInstallation=%s "
"%s",
this->server_path_.in (),
diff --git a/TAO/CIAO/ciao/ServerActivator_Impl.h b/TAO/CIAO/ciao/ServerActivator_Impl.h
index a1be2c2c6b3..c80df8abef8 100644
--- a/TAO/CIAO/ciao/ServerActivator_Impl.h
+++ b/TAO/CIAO/ciao/ServerActivator_Impl.h
@@ -138,7 +138,8 @@ namespace CIAO
CORBA::ULong delay,
const char *installation_ior,
const char *default_svcconf,
- const char *svcconf_map_file
+ const char *svcconf_map_file,
+ const char *extra_cmdline_flags
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -237,6 +238,9 @@ namespace CIAO
/// Default svc.conf filename.
ACE_CString default_svcconf_file_;
+ /// Extra command line flags
+ ACE_CString extra_flags_;
+
typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
ACE_CString,
ACE_Hash<ACE_CString>,
diff --git a/TAO/CIAO/examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp b/TAO/CIAO/examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp
index daede09ad1f..026b8dade18 100644
--- a/TAO/CIAO/examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp
+++ b/TAO/CIAO/examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp
@@ -30,11 +30,14 @@ MyImpl::BMClosedED_exec_i::push_in_avail (BasicSP::DataAvailable *
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG,
- "BMClosedED - Doing computations \n"));
+ if (CIAO::debug_level () > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "BMClosedED - Doing computations \n"));
- ACE_DEBUG ((LM_DEBUG,
- "BMClosedED - Doing data fetch \n"));
+ ACE_DEBUG ((LM_DEBUG,
+ "BMClosedED - Doing data fetch \n"));
+ }
// Refresh position
BasicSP::ReadData_var dat
@@ -53,9 +56,10 @@ MyImpl::BMClosedED_exec_i::push_in_avail (BasicSP::DataAvailable *
dat->get_data (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
- ACE_DEBUG ((LM_DEBUG,
- "BMClosedED - Display data is [%s] \n",
- str.in ()));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "BMClosedED - Display data is [%s] \n",
+ str));
if (ACE_OS::strcmp (str, "BM DEVICE DATA") == 0)
{
@@ -87,7 +91,8 @@ MyImpl::BMClosedED_exec_i::set_session_context (Components::SessionContext_ptr c
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::set_session_context\n"));
this->context_ =
BasicSP::CCM_BMClosedED_Context::_narrow (ctx
@@ -112,7 +117,8 @@ MyImpl::BMClosedED_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::ccm_activate\n"));
char *argv[1] = { "BMClosedED_exec"};
@@ -140,7 +146,8 @@ MyImpl::BMClosedED_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::ccm_passivate\n"));
}
void
@@ -148,7 +155,8 @@ MyImpl::BMClosedED_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMClosedED_exec_i::ccm_remove\n"));
}
/// Default ctor.
diff --git a/TAO/CIAO/examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp b/TAO/CIAO/examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp
index 851c9d002f6..c0004bd073d 100644
--- a/TAO/CIAO/examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp
+++ b/TAO/CIAO/examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp
@@ -32,8 +32,9 @@ MyImpl::BMDevice_exec_i::push_timeout (BasicSP::TimeOut *
// Nitify others
BasicSP::DataAvailable_var event = new OBV_BasicSP::DataAvailable;
- ACE_DEBUG ((LM_DEBUG,
- "BMDevice, received a timeout from EC \n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "BMDevice, received a timeout from EC \n"));
this->context_->push_data_available (event
ACE_ENV_ARG_PARAMETER);
@@ -60,8 +61,8 @@ MyImpl::BMDevice_exec_i::set_session_context (Components::SessionContext_ptr ctx
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG,
- "MyImpl::BMDevice_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::set_session_context\n"));
this->context_ =
BasicSP::CCM_BMDevice_Context::_narrow (ctx
@@ -85,7 +86,8 @@ MyImpl::BMDevice_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::ccm_activate\n"));
char *argv[1] = { "BMDevice_exec"};
int argc = sizeof(argv)/sizeof(argv[0]);
@@ -111,7 +113,8 @@ MyImpl::BMDevice_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::ccm_passivate\n"));
}
void
@@ -119,7 +122,8 @@ MyImpl::BMDevice_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDevice_exec_i::ccm_remove\n"));
}
/// Default ctor.
diff --git a/TAO/CIAO/examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp b/TAO/CIAO/examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp
index f9b3d9394e3..bc736e7add6 100644
--- a/TAO/CIAO/examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp
+++ b/TAO/CIAO/examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp
@@ -23,11 +23,14 @@ MyImpl::BMDisplay_exec_impl::push_data_ready (
{
ACE_UNUSED_ARG (ev);
- ACE_DEBUG ((LM_DEBUG,
- "BMDisplay - Doing computations \n"));
+ if (CIAO::debug_level () > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "BMDisplay - Doing computations \n"));
- ACE_DEBUG ((LM_DEBUG,
- "BMDisplay - Doing data fetch \n"));
+ ACE_DEBUG ((LM_DEBUG,
+ "BMDisplay - Doing data fetch \n"));
+ }
// Refresh position
BasicSP::ReadData_var dat
@@ -54,7 +57,8 @@ MyImpl::BMDisplay_exec_impl::set_session_context (Components::SessionContext_ptr
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::set_session_context\n"));
this->context_ =
BasicSP::CCM_BMDisplay_Context::_narrow (ctx
@@ -78,7 +82,8 @@ MyImpl::BMDisplay_exec_impl::ccm_activate (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::ccm_activate\n"));
// @@ This hack work around a missing feature in CIAO's assembly
// mechanism where a Softpkg descriptor can specify it's dependency
@@ -113,7 +118,8 @@ MyImpl::BMDisplay_exec_impl::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::ccm_passivate\n"));
}
void
@@ -121,7 +127,8 @@ MyImpl::BMDisplay_exec_impl::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::BMDisplay_exec_impl::ccm_remove\n"));
}
/// Default ctor.
diff --git a/TAO/CIAO/examples/OEP/BasicSP/EC/EC_exec.cpp b/TAO/CIAO/examples/OEP/BasicSP/EC/EC_exec.cpp
index 6ccd5208316..0a7d012fc7e 100644
--- a/TAO/CIAO/examples/OEP/BasicSP/EC/EC_exec.cpp
+++ b/TAO/CIAO/examples/OEP/BasicSP/EC/EC_exec.cpp
@@ -1,6 +1,7 @@
// $Id$
#include "EC_exec.h"
+#include "CIAO_common.h"
#include "ace/Timer_Queue.h"
#include "ace/Reactor.h"
@@ -34,7 +35,8 @@ MyImpl::timeout_Handler::close ()
this->done_ = 1;
this->reactor ()->notify ();
- ACE_DEBUG ((LM_DEBUG, "Waiting\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "Waiting\n"));
return this->wait ();
}
@@ -77,11 +79,12 @@ int
MyImpl::timeout_Handler::handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
- this,
- handle,
- close_mask));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
return 0;
}
@@ -185,7 +188,8 @@ MyImpl::EC_exec_i::set_session_context (Components::SessionContext_ptr ctx
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::set_session_context\n"));
this->context_ =
BasicSP::CCM_EC_Context::_narrow (ctx
@@ -210,7 +214,8 @@ MyImpl::EC_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::ccm_activate\n"));
this->pulser_.open ();
}
@@ -227,7 +232,8 @@ MyImpl::EC_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::ccm_passivate\n"));
this->pulser_.close ();
}
@@ -236,7 +242,8 @@ MyImpl::EC_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::EC_exec_i::ccm_remove\n"));
}
void
@@ -244,8 +251,9 @@ MyImpl::EC_exec_i::pulse (void)
{
ACE_TRY_NEW_ENV
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Pushing BasicSP::TimeOut event!\n")));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Pushing BasicSP::TimeOut event!\n")));
BasicSP::TimeOut_var ev = new OBV_BasicSP::TimeOut ();
diff --git a/TAO/CIAO/examples/OEP/BasicSP/EC/client.cpp b/TAO/CIAO/examples/OEP/BasicSP/EC/client.cpp
index 1ecfeb54974..1667903696a 100644
--- a/TAO/CIAO/examples/OEP/BasicSP/EC/client.cpp
+++ b/TAO/CIAO/examples/OEP/BasicSP/EC/client.cpp
@@ -12,6 +12,7 @@
//==============================================================
#include "ECC.h"
+#include "ace/streams.h"
int
main (int argc, char *argv[])
diff --git a/TAO/CIAO/examples/OEP/BasicSP/EC/controller.cpp b/TAO/CIAO/examples/OEP/BasicSP/EC/controller.cpp
index 7d10c93e930..a2b0f873ef9 100644
--- a/TAO/CIAO/examples/OEP/BasicSP/EC/controller.cpp
+++ b/TAO/CIAO/examples/OEP/BasicSP/EC/controller.cpp
@@ -1,4 +1,5 @@
// $Id$
+
/**
* @file controller.cpp
*
@@ -6,10 +7,9 @@
* EC.
*/
-
#include "ECC.h"
#include "ace/Get_Opt.h"
-
+#include "ace/streams.h"
char *rategen_ior_ = 0;
int rate = 2;
diff --git a/TAO/CIAO/examples/OEP/Display/GPS/GPS_exec.cpp b/TAO/CIAO/examples/OEP/Display/GPS/GPS_exec.cpp
index 20a0010bae5..363067549bc 100644
--- a/TAO/CIAO/examples/OEP/Display/GPS/GPS_exec.cpp
+++ b/TAO/CIAO/examples/OEP/Display/GPS/GPS_exec.cpp
@@ -1,6 +1,8 @@
// $Id$
+
#include "GPS_exec.h"
+#include "CIAO_common.h"
#include "ace/OS_NS_time.h"
@@ -67,7 +69,8 @@ MyImpl::GPS_exec_i::set_session_context (Components::SessionContext_ptr ctx
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::set_session_context\n"));
this->context_ =
HUDisplay::CCM_GPS_Context::_narrow (ctx
@@ -91,7 +94,8 @@ MyImpl::GPS_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_activate\n"));
}
void
@@ -106,7 +110,8 @@ MyImpl::GPS_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_passivate\n"));
}
void
@@ -114,7 +119,8 @@ MyImpl::GPS_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_remove\n"));
}
/// Default ctor.
diff --git a/TAO/CIAO/examples/OEP/Display/GPS/GPS_tracing_exec.cpp b/TAO/CIAO/examples/OEP/Display/GPS/GPS_tracing_exec.cpp
index a80f998bef4..9f477f38146 100644
--- a/TAO/CIAO/examples/OEP/Display/GPS/GPS_tracing_exec.cpp
+++ b/TAO/CIAO/examples/OEP/Display/GPS/GPS_tracing_exec.cpp
@@ -1,6 +1,7 @@
// $Id$
#include "GPS_tracing_exec.h"
+#include "CIAO_common.h"
#include "ace/OS_NS_time.h"
@@ -73,7 +74,8 @@ MyImpl::GPS_tracing_exec_i::set_session_context (Components::SessionContext_ptr
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::set_session_context\n"));
this->context_ =
HUDisplay::CCM_GPS_Context::_narrow (ctx
@@ -97,7 +99,8 @@ MyImpl::GPS_tracing_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_activate\n"));
}
void
@@ -112,7 +115,8 @@ MyImpl::GPS_tracing_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_passivate\n"));
}
void
@@ -120,7 +124,8 @@ MyImpl::GPS_tracing_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_remove\n"));
}
/// Default ctor.
diff --git a/TAO/CIAO/examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp b/TAO/CIAO/examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp
index c407e921a6f..67e546dc11a 100644
--- a/TAO/CIAO/examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp
+++ b/TAO/CIAO/examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp
@@ -47,7 +47,8 @@ MyImpl::NavDisplay_exec_impl::set_session_context (Components::SessionContext_pt
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::set_session_context\n"));
this->context_ =
HUDisplay::CCM_NavDisplay_Context::_narrow (ctx
@@ -71,7 +72,8 @@ MyImpl::NavDisplay_exec_impl::ccm_activate (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::ccm_activate\n"));
// @@ This hack work around a missing feature in CIAO's assembly
// mechanism where a Softpkg descriptor can specify it's dependency
@@ -106,7 +108,8 @@ MyImpl::NavDisplay_exec_impl::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::ccm_passivate\n"));
}
void
@@ -114,7 +117,8 @@ MyImpl::NavDisplay_exec_impl::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplay_exec_impl::ccm_remove\n"));
}
/// Default ctor.
diff --git a/TAO/CIAO/examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp b/TAO/CIAO/examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
index 5fc68e31eab..6a8fb311e73 100644
--- a/TAO/CIAO/examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
+++ b/TAO/CIAO/examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
@@ -1,7 +1,7 @@
// $Id$
#include "NavDisplayGUI_exec.h"
-#include "ciao/CIAO_common.h"
+#include "CIAO_common.h"
#include <qapplication.h>
#include <qevent.h>
@@ -19,13 +19,15 @@ static char *argv[] =
MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUI_exec_impl ()
: unit_(1, "Model T3+"), loc_(50, 20, 0)
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUI_exec_impl ()\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUI_exec_impl ()\n"));
}
/// Default destructor.
MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUI_exec_impl ()
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUI_exec_impl ()\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUI_exec_impl ()\n"));
}
// Operations from HUDisplay::NavDisplay
@@ -78,7 +80,8 @@ MyImpl::NavDisplayGUI_exec_impl::set_session_context (Components::SessionContext
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::set_session_context\n"));
this->context_ =
HUDisplay::CCM_NavDisplay_Context::_narrow (ctx
@@ -102,7 +105,8 @@ MyImpl::NavDisplayGUI_exec_impl::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "ENTER: MyImpl::NavDisplayGUI_exec_impl::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "ENTER: MyImpl::NavDisplayGUI_exec_impl::ccm_activate\n"));
int argc = sizeof(argv)/sizeof(argv[0]);
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv ACE_ENV_ARG_PARAMETER);
@@ -127,7 +131,8 @@ MyImpl::NavDisplayGUI_exec_impl::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
QApplication::postEvent(worker_->getMainWindow(), evt);
- ACE_DEBUG ((LM_DEBUG, "LEAVE: MyImpl::NavDisplayGUI_exec_impl::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "LEAVE: MyImpl::NavDisplayGUI_exec_impl::ccm_activate\n"));
}
void
@@ -142,7 +147,8 @@ MyImpl::NavDisplayGUI_exec_impl::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::ccm_passivate\n"));
RootPanel *target = worker_->getMainWindow();
if(target)
@@ -161,19 +167,24 @@ MyImpl::NavDisplayGUI_exec_impl::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::ccm_remove\n"));
}
/// Default ctor.
MyImpl::NavDisplayGUIHome_exec_impl::NavDisplayGUIHome_exec_impl ()
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUIHome_exec_impl ()\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUIHome_exec_impl ()\n"));
}
/// Default dtor.
MyImpl::NavDisplayGUIHome_exec_impl::~NavDisplayGUIHome_exec_impl ()
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUIHome_exec_impl ()\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUIHome_exec_impl ()\n"));
}
// Explicit home operations.
@@ -185,7 +196,9 @@ MyImpl::NavDisplayGUIHome_exec_impl::create (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::NavDisplayGUIHome_exec_impl::create()\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::NavDisplayGUIHome_exec_impl::create()\n"));
return new MyImpl::NavDisplayGUI_exec_impl;
}
@@ -193,6 +206,7 @@ MyImpl::NavDisplayGUIHome_exec_impl::create (ACE_ENV_SINGLE_ARG_DECL)
extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr
createNavDisplayHome_Impl (void)
{
- ACE_DEBUG ((LM_DEBUG, "createNavDisplayHome_Impl()\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "createNavDisplayHome_Impl()\n"));
return new MyImpl::NavDisplayGUIHome_exec_impl;
}
diff --git a/TAO/CIAO/examples/OEP/Display/RateGen/RateGen_exec.cpp b/TAO/CIAO/examples/OEP/Display/RateGen/RateGen_exec.cpp
index 8c01108e205..b10d3a8dc77 100644
--- a/TAO/CIAO/examples/OEP/Display/RateGen/RateGen_exec.cpp
+++ b/TAO/CIAO/examples/OEP/Display/RateGen/RateGen_exec.cpp
@@ -1,6 +1,7 @@
// $Id$
#include "RateGen_exec.h"
+#include "CIAO_common.h"
#include "ace/Timer_Queue.h"
#include "ace/Reactor.h"
@@ -34,7 +35,8 @@ MyImpl::Pulse_Handler::close ()
this->done_ = 1;
this->reactor ()->notify ();
- ACE_DEBUG ((LM_DEBUG, "Waiting\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "Waiting\n"));
return this->wait ();
}
@@ -77,11 +79,12 @@ int
MyImpl::Pulse_Handler::handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask close_mask)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
- this,
- handle,
- close_mask));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
return 0;
}
@@ -185,7 +188,8 @@ MyImpl::RateGen_exec_i::set_session_context (Components::SessionContext_ptr ctx
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::set_session_context\n"));
this->context_ =
HUDisplay::CCM_RateGen_Context::_narrow (ctx
@@ -210,7 +214,8 @@ MyImpl::RateGen_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::ccm_activate\n"));
this->pulser_.open ();
}
@@ -227,7 +232,8 @@ MyImpl::RateGen_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::ccm_passivate\n"));
this->pulser_.close ();
}
@@ -236,7 +242,8 @@ MyImpl::RateGen_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RateGen_exec_i::ccm_remove\n"));
}
void
@@ -244,8 +251,9 @@ MyImpl::RateGen_exec_i::pulse (void)
{
ACE_TRY_NEW_ENV
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Pushing HUDisplay::tick event!\n")));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Pushing HUDisplay::tick event!\n")));
HUDisplay::tick_var ev = new OBV_HUDisplay::tick ();
diff --git a/TAO/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp b/TAO/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
index f1dbfc2a0ef..6c292563e6e 100644
--- a/TAO/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
+++ b/TAO/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
@@ -1,6 +1,7 @@
// $Id$
#include "RoundTrip_exec.h"
+#include "CIAO_common.h"
//-- ACE Scheduling Params
#include "ace/Sched_Params.h"
@@ -57,7 +58,7 @@ MyImpl::RoundTrip_exec_i::makeCall (CORBA::Long data)
ACE_THROW_SPEC ((CORBA::SystemException))
{
return data*data*data;
-
+
}
// Operations from Components::SessionComponent
@@ -67,7 +68,8 @@ MyImpl::RoundTrip_exec_i::set_session_context (Components::SessionContext_ptr ct
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::set_session_context\n"));
//cout << "MyImpl::RoundTrip_exec_i::set_session_context\n" << endl;
this->context_ =
@@ -85,7 +87,8 @@ MyImpl::RoundTrip_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::ccm_activate\n"));
//cout << "MyImpl::RoundTrip_exec_i::ccm_activate\n";
// Starting method!
@@ -97,7 +100,8 @@ MyImpl::RoundTrip_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::ccm_passivate\n"));
}
void
@@ -105,7 +109,8 @@ MyImpl::RoundTrip_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTrip_exec_i::ccm_remove\n"));
}
diff --git a/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp b/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
index 24fba631f87..775f640dd46 100644
--- a/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
+++ b/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
@@ -3,6 +3,8 @@
#include "ace/Stats.h"
#include "ace/Sample_History.h"
#include "ace/High_Res_Timer.h"
+#include "CIAO_common.h"
+#include "ace/Env_Value_T.h"
#include "RoundTripClient_exec.h"
@@ -25,7 +27,8 @@ MyImpl::RoundTripClient_exec_i::set_session_context (Components::SessionContext_
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::set_session_context\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::set_session_context\n"));
//Since this is in collocated mode; The server-component will change the
//scheduling strategy to real-time scheduling
@@ -47,7 +50,8 @@ MyImpl::RoundTripClient_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::ccm_activate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::ccm_activate\n"));
}
void
@@ -61,7 +65,8 @@ MyImpl::RoundTripClient_exec_i::start ()
context_->get_connection_latency(ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
- ACE_DEBUG ((LM_DEBUG,"MyImpl::RoundTripClient_exec::start obtain obj ref\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,"MyImpl::RoundTripClient_exec::start obtain obj ref\n"));
CORBA::Long test_data = 0L;
@@ -97,6 +102,12 @@ MyImpl::RoundTripClient_exec_i::start ()
ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
ACE_DEBUG ((LM_DEBUG, "done\n"));
+ ACE_Env_Value<int> envar ("CIAO_DUMP_SAMPLE_HISTORY", 0);
+ if (envar != 0)
+ {
+ history.dump_samples ("HISTORY", gsf);
+ }
+
ACE_Basic_Stats stats;
history.collect_basic_stats (stats);
stats.dump_results ("Total", gsf);
@@ -120,7 +131,8 @@ MyImpl::RoundTripClient_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::ccm_passivate\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::ccm_passivate\n"));
}
void
@@ -128,7 +140,8 @@ MyImpl::RoundTripClient_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CCMException))
{
- ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::ccm_remove\n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::RoundTripClient_exec_i::ccm_remove\n"));
}
@@ -152,6 +165,7 @@ MyImpl::RoundTripClientHome_exec_i::create (ACE_ENV_SINGLE_ARG_DECL)
extern "C" ROUNDTRIPCLIENT_EXEC_Export ::Components::HomeExecutorBase_ptr
createRoundTripClientHome_Impl (void)
{
- ACE_DEBUG ((LM_DEBUG, "Creating RoundTrip_client impl \n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "Creating RoundTrip_client impl \n"));
return new MyImpl::RoundTripClientHome_exec_i ();
}
diff --git a/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl b/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl
index b8a0a790bf9..e26d55c1a66 100755
--- a/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl
+++ b/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl
@@ -19,6 +19,10 @@ $am_ior = PerlACE::LocalFile ("am.ior");
$ACE_ROOT=$ENV{'ACE_ROOT'};
$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
unlink $daemon_ior;
unlink $am_ior;
diff --git a/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl b/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl
index 230d137e1bb..bb665cc499a 100755
--- a/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl
+++ b/TAO/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl
@@ -19,6 +19,10 @@ $am_ior = PerlACE::LocalFile ("am.ior");
$ACE_ROOT=$ENV{'ACE_ROOT'};
$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
unlink $daemon_ior;
unlink $am_ior;
diff --git a/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp b/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
index d9033e3ab85..9716e0b481c 100644
--- a/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
+++ b/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
@@ -1,7 +1,8 @@
//
-// $Id$
+// $Id$
//
#include "LatencyTest.h"
+#include "CIAO_common.h"
LatencyTest_Impl::LatencyTest_Impl (CORBA::ORB_ptr orb)
: orb_ (CORBA::ORB::_duplicate (orb))
@@ -14,7 +15,8 @@ LatencyTest_Impl::makeCall (CORBA::Long send_time
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG, "Sending Time back \n"));
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "Sending Time back \n"));
return send_time;
}
diff --git a/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc b/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
index a72c145f991..885c0d6d012 100644
--- a/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
+++ b/TAO/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
@@ -1,5 +1,5 @@
// $Id$
-project (RoundTripServer) : taoserver, strategies {
+project (RoundTripServer) : taoserver, strategies, ciao_servant {
after += Benchmark_svnt
libs += Benchmark_stub Benchmark_svnt
libpaths += ..
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.cidl b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.cidl
new file mode 100644
index 00000000000..60237271100
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.cidl
@@ -0,0 +1,12 @@
+// $Id$ -*- IDL -*-
+
+#include "Controller.idl"
+
+composition session Controller_Impl
+{
+ home executor ControllerHome_exec
+ {
+ implements Priority_Test::ControllerHome;
+ manages Controller_exec;
+ };
+};
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.idl b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.idl
new file mode 100644
index 00000000000..94e705e3c2d
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.idl
@@ -0,0 +1,29 @@
+// $Id$
+
+/**
+ * @file Controller.idl
+ *
+ * Definition of an Controller component that triggers a worker
+ * connecting to it to do some work.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef CONTROLLER_IDL
+#define CONTROLLER_IDL
+
+#include "../Priority_Test.idl"
+
+module Priority_Test
+{
+ component Controller supports Op_Mode
+ {
+ uses Common_Ops worker;
+ };
+
+ home ControllerHome manages Controller
+ {
+ };
+};
+
+#endif /* CONTROLLER_IDL */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.mpc b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.mpc
new file mode 100644
index 00000000000..1eb9ffc6f89
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller.mpc
@@ -0,0 +1,92 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -l .. -p Priority_Test -i Controller"
+
+project(Priority_Test_Controller_stub): ciao_client {
+ after += Priority_Test_stub
+ sharedname = Controller_stub
+ idlflags += -Wb,stub_export_macro=CONTROLLER_STUB_Export -Wb,stub_export_include=Controller_stub_export.h -Wb,skel_export_macro=CONTROLLER_SVNT_Export -Wb,skel_export_include=Controller_svnt_export.h
+ dynamicflags = CONTROLLER_STUB_BUILD_DLL
+
+ IDL_Files {
+ Controller.idl
+ }
+
+ Source_Files {
+ ControllerC.cpp
+ }
+}
+
+project(Priority_Test_Controller_svnt) : ciao_servant {
+ after += Priority_Test_svnt Priority_Test_Controller_stub
+ sharedname = Controller_svnt
+ libs += Controller_stub Priority_Test_stub Priority_Test_svnt
+ libpaths += ..
+ idlflags += -Wb,export_macro=CONTROLLER_SVNT_Export -Wb,export_include=Controller_svnt_export.h
+ dynamicflags = CONTROLLER_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ Controller.cidl
+ }
+
+ IDL_Files {
+ ControllerE.idl
+ }
+
+ Source_Files {
+ ControllerEC.cpp
+ ControllerS.cpp
+ Controller_svnt.cpp
+ }
+}
+
+
+project(Priority_Test_Controller_exec) : ciao_component {
+ after += Priority_Test_Controller_svnt
+ sharedname = Controller_exec
+ libs += Controller_stub Controller_svnt Priority_Test_stub Priority_Test_svnt
+ libpaths += ..
+ idlflags += -Wb,export_macro=CONTROLLER_EXEC_Export -Wb,export_include=Controller_exec_export.h
+ dynamicflags = CONTROLLER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ ControllerEI.idl
+ }
+
+ Source_Files {
+ ControllerEIC.cpp
+ Controller_exec.cpp
+ }
+}
+
+project(Priority_Test_Rate_Controller_exec) : ciao_component {
+ after += Priority_Test_Controller_svnt
+ sharedname = Rate_Controller_exec
+ libs += Controller_stub Controller_svnt Priority_Test_stub Priority_Test_svnt
+ libpaths += ..
+ idlflags += -Wb,export_macro=CONTROLLER_EXEC_Export -Wb,export_include=Controller_exec_export.h
+ dynamicflags = CONTROLLER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ ControllerEI.idl
+ }
+
+ Source_Files {
+ ControllerEIC.cpp
+ Rate_Controller.cpp
+ Pulser.cpp
+ }
+}
+
+project (*client) : ciao_client {
+ exename = client
+ after += Priority_Test_Controller_stub
+ libs += Controller_stub Priority_Test_stub
+ libpaths += ..
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ client.cpp
+ }
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/ControllerEI.idl b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/ControllerEI.idl
new file mode 100644
index 00000000000..7cfb0d8ceed
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/ControllerEI.idl
@@ -0,0 +1,32 @@
+// $Id$
+
+/**
+ * @file ControllerEI.idl
+ *
+ * Definition of the Controller component implementation.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef CONTROLLEREI_IDL
+#define CONTROLLEREI_IDL
+
+#include "ControllerE.idl"
+
+module Priority_Test
+{
+ /**
+ * @interface Controller_Exec
+ *
+ * The actually Controller executor inherits from
+ * CCM_Controller as a monolithic implementation.
+ */
+ local interface Controller_Exec :
+ CCM_Controller,
+ Components::SessionComponent
+ {
+ };
+
+};
+
+#endif /* CONTROLLEREI_IDL */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.cpp b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.cpp
new file mode 100644
index 00000000000..38adb36c86a
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.cpp
@@ -0,0 +1,160 @@
+// $Id$
+
+#include "Controller_exec.h"
+#include "CIAO_common.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Stats.h"
+#include "ace/Sample_History.h"
+#include "ace/Env_Value_T.h"
+
+/// Default constructor.
+MyImpl::Controller_exec_i::Controller_exec_i ()
+{
+}
+
+/// Default destructor.
+MyImpl::Controller_exec_i::~Controller_exec_i ()
+{
+}
+
+// Operations from Priority_Test::Controller
+void
+MyImpl::Controller_exec_i::start (CORBA::Long arg
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // This simply performs some measurements and print out the result.
+
+ ACE_DEBUG ((LM_DEBUG, "PERFORM TEST\n"));
+
+ ACE_UNUSED_ARG (arg);
+
+ Priority_Test::Common_Ops_var device =
+ this->context_->get_connection_worker (ACE_ENV_SINGLE_ARG_PARAMETER);
+
+ const int niterations = 1000;
+ const CORBA::Long work = arg;
+ ACE_Sample_History history (niterations);
+
+ ACE_hrtime_t test_start = ACE_OS::gethrtime ();
+ for (int i = 0; i < niterations; ++i)
+ {
+ ACE_hrtime_t start = ACE_OS::gethrtime ();
+
+ (void) device->do_work (work, 0 ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+ history.sample (now - start);
+ }
+ ACE_hrtime_t test_end = ACE_OS::gethrtime ();
+
+ ACE_DEBUG ((LM_DEBUG, "test finished\n"));
+
+ const int len = 1024;
+ char title [len];
+
+ ACE_OS::snprintf (title, len, "Total (work=%4d)", work);
+
+ ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration...."));
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+ ACE_DEBUG ((LM_DEBUG, "done\n"));
+
+ ACE_Env_Value<int> envar ("CIAO_DUMP_SAMPLE_HISTORY", 0);
+ if (envar != 0)
+ {
+ history.dump_samples ("HISTORY", gsf);
+ }
+
+ ACE_Basic_Stats stats;
+ history.collect_basic_stats (stats);
+ stats.dump_results (title, gsf);
+
+ ACE_Throughput_Stats::dump_throughput (title, gsf,
+ test_end - test_start,
+ stats.samples_count ());
+}
+
+void
+MyImpl::Controller_exec_i::stop (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::Controller_exec_i::set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Controller_exec_i::set_session_context\n"));
+
+ this->context_ =
+ Priority_Test::CCM_Controller_Context::_narrow (ctx
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (this->context_.in ()))
+ ACE_THROW (CORBA::INTERNAL ());
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::Controller_exec_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Controller_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::Controller_exec_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Controller_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::Controller_exec_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Controller_exec_i::ccm_remove\n"));
+}
+
+/// Default ctor.
+MyImpl::Controller_Home_exec_i::Controller_Home_exec_i ()
+{
+}
+
+/// Default dtor.
+MyImpl::Controller_Home_exec_i::~Controller_Home_exec_i ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::Controller_Home_exec_i::create (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ return new MyImpl::Controller_exec_i;
+}
+
+
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome_Impl (void)
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "extern \"C\" ::createControllerHome_Impl\n"));
+ return new MyImpl::Controller_Home_exec_i;
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.h
new file mode 100644
index 00000000000..cb650ac6b57
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec.h
@@ -0,0 +1,114 @@
+// $Id$
+
+/**
+ * @file Controller_exec.h
+ *
+ * Header file for the actual Controller and ControllerHome component
+ * implementations. These classes are the implementations of local
+ * interfaces defined in ControllerEI.idl.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef CONTROLLER_EXEC_H
+#define CONTROLLER_EXEC_H
+
+#include "ControllerEIC.h"
+#include "tao/LocalObject.h"
+
+// The namespace name for the actual implementation classes doesn't
+// really matter. Since there may be several different
+// implementations for a component, they can very well be in different
+// namespaces.
+namespace MyImpl
+{
+ /**
+ * @class Controller_exec_i
+ *
+ * A generic controller implementation.
+ */
+ class CONTROLLER_EXEC_Export Controller_exec_i :
+ public virtual Priority_Test::Controller_Exec,
+ // CIAO container implementation depends on correct reference
+ // counting of local interfaces, so we take a short cut to
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default constructor.
+ Controller_exec_i ();
+
+ /// Default destructor.
+ ~Controller_exec_i ();
+
+ // Operations from Priority_Test::Controller
+
+ virtual void
+ start (CORBA::Long arg
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void
+ stop (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+ protected:
+ /// Copmponent specific context
+ Priority_Test::CCM_Controller_Context_var context_;
+ };
+
+ /**
+ * @class Controller_exec_i
+ *
+ * CB_Worker home executor implementation class.
+ */
+ class CONTROLLER_EXEC_Export Controller_Home_exec_i :
+ public virtual Priority_Test::CCM_ControllerHome,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default ctor.
+ Controller_Home_exec_i ();
+
+ /// Default dtor.
+ ~Controller_Home_exec_i ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+ };
+
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome_Impl (void);
+
+#endif /* CONTROLLER_EXEC_H */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec_export.h
new file mode 100644
index 00000000000..080ecb25a44
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_exec_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CONTROLLER_EXEC
+// ------------------------------
+#ifndef CONTROLLER_EXEC_EXPORT_H
+#define CONTROLLER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (CONTROLLER_EXEC_HAS_DLL)
+# define CONTROLLER_EXEC_HAS_DLL 1
+#endif /* ! CONTROLLER_EXEC_HAS_DLL */
+
+#if defined (CONTROLLER_EXEC_HAS_DLL) && (CONTROLLER_EXEC_HAS_DLL == 1)
+# if defined (CONTROLLER_EXEC_BUILD_DLL)
+# define CONTROLLER_EXEC_Export ACE_Proper_Export_Flag
+# define CONTROLLER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONTROLLER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONTROLLER_EXEC_BUILD_DLL */
+# define CONTROLLER_EXEC_Export ACE_Proper_Import_Flag
+# define CONTROLLER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONTROLLER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONTROLLER_EXEC_BUILD_DLL */
+#else /* CONTROLLER_EXEC_HAS_DLL == 1 */
+# define CONTROLLER_EXEC_Export
+# define CONTROLLER_EXEC_SINGLETON_DECLARATION(T)
+# define CONTROLLER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONTROLLER_EXEC_HAS_DLL == 1 */
+
+// Set CONTROLLER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONTROLLER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONTROLLER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONTROLLER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONTROLLER_EXEC_NTRACE */
+
+#if (CONTROLLER_EXEC_NTRACE == 1)
+# define CONTROLLER_EXEC_TRACE(X)
+#else /* (CONTROLLER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONTROLLER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONTROLLER_EXEC_NTRACE == 1) */
+
+#endif /* CONTROLLER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_stub_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_stub_export.h
new file mode 100644
index 00000000000..65a430401a8
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CONTROLLER_STUB
+// ------------------------------
+#ifndef CONTROLLER_STUB_EXPORT_H
+#define CONTROLLER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (CONTROLLER_STUB_HAS_DLL)
+# define CONTROLLER_STUB_HAS_DLL 1
+#endif /* ! CONTROLLER_STUB_HAS_DLL */
+
+#if defined (CONTROLLER_STUB_HAS_DLL) && (CONTROLLER_STUB_HAS_DLL == 1)
+# if defined (CONTROLLER_STUB_BUILD_DLL)
+# define CONTROLLER_STUB_Export ACE_Proper_Export_Flag
+# define CONTROLLER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONTROLLER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONTROLLER_STUB_BUILD_DLL */
+# define CONTROLLER_STUB_Export ACE_Proper_Import_Flag
+# define CONTROLLER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONTROLLER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONTROLLER_STUB_BUILD_DLL */
+#else /* CONTROLLER_STUB_HAS_DLL == 1 */
+# define CONTROLLER_STUB_Export
+# define CONTROLLER_STUB_SINGLETON_DECLARATION(T)
+# define CONTROLLER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONTROLLER_STUB_HAS_DLL == 1 */
+
+// Set CONTROLLER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONTROLLER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONTROLLER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONTROLLER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONTROLLER_STUB_NTRACE */
+
+#if (CONTROLLER_STUB_NTRACE == 1)
+# define CONTROLLER_STUB_TRACE(X)
+#else /* (CONTROLLER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONTROLLER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONTROLLER_STUB_NTRACE == 1) */
+
+#endif /* CONTROLLER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_svnt_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_svnt_export.h
new file mode 100644
index 00000000000..d5e7c6aa42d
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Controller_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CONTROLLER_SVNT
+// ------------------------------
+#ifndef CONTROLLER_SVNT_EXPORT_H
+#define CONTROLLER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (CONTROLLER_SVNT_HAS_DLL)
+# define CONTROLLER_SVNT_HAS_DLL 1
+#endif /* ! CONTROLLER_SVNT_HAS_DLL */
+
+#if defined (CONTROLLER_SVNT_HAS_DLL) && (CONTROLLER_SVNT_HAS_DLL == 1)
+# if defined (CONTROLLER_SVNT_BUILD_DLL)
+# define CONTROLLER_SVNT_Export ACE_Proper_Export_Flag
+# define CONTROLLER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONTROLLER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONTROLLER_SVNT_BUILD_DLL */
+# define CONTROLLER_SVNT_Export ACE_Proper_Import_Flag
+# define CONTROLLER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONTROLLER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONTROLLER_SVNT_BUILD_DLL */
+#else /* CONTROLLER_SVNT_HAS_DLL == 1 */
+# define CONTROLLER_SVNT_Export
+# define CONTROLLER_SVNT_SINGLETON_DECLARATION(T)
+# define CONTROLLER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONTROLLER_SVNT_HAS_DLL == 1 */
+
+// Set CONTROLLER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONTROLLER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONTROLLER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONTROLLER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONTROLLER_SVNT_NTRACE */
+
+#if (CONTROLLER_SVNT_NTRACE == 1)
+# define CONTROLLER_SVNT_TRACE(X)
+#else /* (CONTROLLER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONTROLLER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONTROLLER_SVNT_NTRACE == 1) */
+
+#endif /* CONTROLLER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.cpp b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.cpp
new file mode 100644
index 00000000000..6f4be265b19
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.cpp
@@ -0,0 +1,113 @@
+// $Id$
+
+#include "Pulser.h"
+#include "CIAO_common.h"
+#include "ace/Timer_Queue.h"
+#include "ace/Reactor.h"
+
+//=================================================================
+
+PTImpl::Pulser::Pulser (PTImpl::Pulse_Handler *cb)
+ : active_ (0),
+ done_ (0),
+ tid_ (0),
+ pulser_callback_ (cb)
+{
+ // Nothing
+ this->reactor (new ACE_Reactor);
+}
+
+PTImpl::Pulser::~Pulser ()
+{
+ delete this->reactor ();
+ this->reactor (0);
+}
+
+int
+PTImpl::Pulser::open ()
+{
+ return this->activate ();
+}
+
+int
+PTImpl::Pulser::close ()
+{
+ this->done_ = 1;
+ this->reactor ()->notify ();
+
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "Waiting\n"));
+ return this->wait ();
+}
+
+int
+PTImpl::Pulser::start (CORBA::Long hertz)
+{
+ if (hertz == 0 || this->active_ != 0) // Not valid
+ return -1;
+
+ this->active_ = 1;
+ long usec = 1000000 / hertz;
+
+ this->tid_ = this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec));
+
+ return 0;
+}
+
+int
+PTImpl::Pulser::stop (void)
+{
+ if (this->active_ == 0) // Not valid.
+ return -1;
+ else
+ this->active_ = 0;
+ return 0;
+}
+
+int
+PTImpl::Pulser::active (void)
+{
+ return this->active_;
+}
+
+int
+PTImpl::Pulser::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+
+ return 0;
+}
+
+int
+PTImpl::Pulser::handle_timeout (const ACE_Time_Value &,
+ const void *)
+{
+ if (this->active_ == 0)
+ this->reactor ()->cancel_timer (this);
+ else
+ this->pulser_callback_->pulse ();
+
+ return 0;
+}
+
+int
+PTImpl::Pulser::svc (void)
+{
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ while (!this->done_)
+ this->reactor ()->handle_events ();
+
+ return 0;
+}
+
+//=================================================================
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.h
new file mode 100644
index 00000000000..67aa316f893
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Pulser.h
@@ -0,0 +1,75 @@
+// $Id$
+
+/**
+ * @file Pulser.h
+ *
+ * Header file for the Pulser class.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef PULSER_H
+#define PULSER_H
+
+#include "tao/corba.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+namespace PTImpl
+{
+ // Forward decl.
+ class Pulse_Handler
+ {
+ public:
+ /// Helper function to be called back by Pulse_Handler
+ virtual void pulse (void) = 0;
+ };
+
+ /**
+ * @brief Active pulse generater
+ */
+ class Pulser : public ACE_Task_Base
+ {
+ public:
+ // Default constructor
+ Pulser (Pulse_Handler *cb);
+ ~Pulser ();
+
+ int open (void);
+
+ int close (void);
+
+ int start (CORBA::Long hertz);
+
+ int stop (void);
+
+ int active (void);
+
+ // Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ // Called when <Time_Handler> is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ long active_;
+
+ /// Flag to indicate completion of this active object.
+ int done_;
+
+ /// The timer id we are waiting.
+ int tid_;
+
+ Pulse_Handler *pulser_callback_;
+
+ ACE_Thread_Manager thr_mgr_;
+ };
+
+}
+
+#endif /* PULSER_H */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.cpp b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.cpp
new file mode 100644
index 00000000000..94419f545aa
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.cpp
@@ -0,0 +1,221 @@
+// $Id$
+
+#include "Rate_Controller.h"
+#include "CIAO_common.h"
+
+/// Allocate sample history to take up to 5 minutes of samples.
+const int MyImpl::Rate_Controller_i::sample_time_ = 5;
+
+/// Default constructor.
+MyImpl::Rate_Controller_i::Rate_Controller_i (CORBA::Long hertz)
+ : rate_ (hertz),
+ pulser_ (this),
+ sampler_ (0)
+{
+}
+
+/// Default destructor.
+MyImpl::Rate_Controller_i::~Rate_Controller_i ()
+{
+ delete this->sampler_;
+}
+
+// Operations from Priority_Test::Controller
+void
+MyImpl::Rate_Controller_i::start (CORBA::Long arg
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // This simply performs some measurements and print out the result.
+ ACE_DEBUG ((LM_DEBUG, "PERFORM TEST (%dhz)\n", this->rate_));
+
+ if (this->pulser_.active())
+ ACE_THROW (CORBA::BAD_INV_ORDER ());
+
+ this->work_ = arg;
+ this->start_time_ = ACE_OS::gethrtime ();
+ delete this->sampler_;
+#if defined (COLLECT_AND_DUMP_SAMPLE_HISTORY)
+ size_t niterations = this->rate_ * 60 * MyImpl::Rate_Controller_i::sample_time_;
+ this->sampler_ = new SAMPLER (niterations);
+#else
+ this->sampler_ = new SAMPLER;
+#endif /* COLLECT_AND_DUMP_SAMPLE_HISTORY */
+
+ // @@ Start the rate generator
+ this->pulser_.start (this->rate_);
+}
+
+void
+MyImpl::Rate_Controller_i::stop (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (! this->pulser_.active ())
+ ACE_THROW (CORBA::BAD_INV_ORDER ());
+
+ // @@ stop the rate generator
+ this->pulser_.stop ();
+ ACE_hrtime_t stop_test = ACE_OS::gethrtime ();
+
+ ACE_DEBUG ((LM_DEBUG, "test finished (%dhz)\n", this->rate_));
+
+ const int len = 1024;
+ char title [len];
+
+ ACE_OS::snprintf (title, len, "Total (work=%4d @ %2dhz)",
+ this->work_,
+ this->rate_);
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+
+ size_t count = 0;
+
+#if defined (COLLECT_AND_DUMP_SAMPLE_HISTORY)
+ this->sampler_->dump_samples (title, gsf);
+
+ ACE_Basic_Stats stats;
+ this->sampler_->collect_basic_stats (stats);
+ stats.dump_results (title, gsf);
+ count = stats.samples_count ();
+#else
+ this->sampler_->dump_results (title, gsf);
+ count = this->sampler_->samples_count ();
+#endif /* COLLECT_BASIC_STATS */
+
+ ACE_Throughput_Stats::dump_throughput (title, gsf,
+ stop_test - this->start_time_,
+ count);
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::Rate_Controller_i::set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Rate_Controller_i::set_session_context (%dhz)\n",
+ this->rate_));
+
+ this->context_ =
+ Priority_Test::CCM_Controller_Context::_narrow (ctx
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (this->context_.in ()))
+ ACE_THROW (CORBA::INTERNAL ());
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::Rate_Controller_i::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Rate_Controller_i::ccm_activate (%dhz)\n",
+ this->rate_));
+
+ this->pulser_.open ();
+}
+
+void
+MyImpl::Rate_Controller_i::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Rate_Controller_i::ccm_passivate(%dhz)\n",
+ this->rate_));
+
+ this->pulser_.close ();
+}
+
+void
+MyImpl::Rate_Controller_i::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::Rate_Controller_i::ccm_remove (%dhz)\n",
+ this->rate_));
+}
+
+void
+MyImpl::Rate_Controller_i::pulse (void)
+{
+ ACE_TRY_NEW_ENV
+ {
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Pulse (%dhz)!\n",
+ this->rate_));
+
+ ACE_hrtime_t start = ACE_OS::gethrtime ();
+
+ Priority_Test::Common_Ops_var device =
+ this->context_->get_connection_worker (ACE_ENV_SINGLE_ARG_PARAMETER);
+
+ (void) device->do_work (this->work_, 0 ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+ this->sampler_->sample (now - start);
+ }
+ ACE_CATCHANY
+ {
+ // >= 0 meaning always print out the exception.
+ if (CIAO::debug_level () >= 0)
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "Rate_Controller pulse exception\n");
+ }
+ ACE_ENDTRY;
+}
+
+/// Default ctor.
+MyImpl::Rate_Controller_Home_i::Rate_Controller_Home_i (CORBA::Long hertz)
+ : hertz_ (hertz)
+{
+}
+
+/// Default dtor.
+MyImpl::Rate_Controller_Home_i::~Rate_Controller_Home_i ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::Rate_Controller_Home_i::create (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ return new MyImpl::Rate_Controller_i (this->hertz_);
+}
+
+
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome25_Impl (void)
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "extern \"C\" ::createControllerHome_Impl (25hz)\n"));
+ return new MyImpl::Rate_Controller_Home_i (25);
+}
+
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome50_Impl (void)
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "extern \"C\" ::createControllerHome_Impl (50hz)\n"));
+ return new MyImpl::Rate_Controller_Home_i (50);
+}
+
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome75_Impl (void)
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "extern \"C\" ::createControllerHome_Impl (75hz)\n"));
+ return new MyImpl::Rate_Controller_Home_i (75);
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.h
new file mode 100644
index 00000000000..8da42be49a3
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/Rate_Controller.h
@@ -0,0 +1,163 @@
+// $Id$
+
+/**
+ * @file Rate_Controller.h
+ *
+ * Header file for the Rate Controller and Rate ControllerHome
+ * component implementations. These controller trigger a remote
+ * worker at some rate to do some amount of work.
+ *
+ * We should make "hertz" a configurable parameter using a property
+ * file, but, unfortunately, CIAO doesn't support this feature when
+ * this executor at this time. Therefore, we use different entry
+ * points for the DLL to control the rate of the Rate_Controller.
+ *
+ * define macro: COLLECT_AND_DUMP_SAMPLE_HISTORY to collect and dump
+ * sample history.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef RATE_CONTROLLER_H
+#define RATE_CONTROLLER_H
+
+#include "ControllerEIC.h"
+#include "tao/LocalObject.h"
+#include "Pulser.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Stats.h"
+#include "ace/Sample_History.h"
+
+// The namespace name for the actual implementation classes doesn't
+// really matter. Since there may be several different
+// implementations for a component, they can very well be in different
+// namespaces.
+namespace MyImpl
+{
+ /**
+ * @class Rate_Controller_i
+ *
+ * A generic controller implementation.
+ */
+ class CONTROLLER_EXEC_Export Rate_Controller_i :
+ public virtual PTImpl::Pulse_Handler,
+ public virtual Priority_Test::Controller_Exec,
+ // CIAO container implementation depends on correct reference
+ // counting of local interfaces, so we take a short cut to
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default constructor.
+ Rate_Controller_i (CORBA::Long hertz);
+
+ /// Default destructor.
+ ~Rate_Controller_i ();
+
+ // Operations from Priority_Test::Controller
+
+ virtual void
+ start (CORBA::Long arg
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void
+ stop (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ /// Callback
+ virtual void
+ pulse (void);
+
+ protected:
+ const CORBA::Long rate_;
+
+ CORBA::Long work_;
+
+ /// Copmponent specific context
+ Priority_Test::CCM_Controller_Context_var context_;
+
+ /// Pulser generate periodical events
+ PTImpl::Pulser pulser_;
+
+ // ------ Statistic related variables --------
+
+ /// Amount of memory to allocate for performance samples.
+ static const int sample_time_; // in minute
+
+ /// Mark the time when the "start method" is called.
+ ACE_hrtime_t start_time_;
+
+#if defined (COLLECT_AND_DUMP_SAMPLE_HISTORY)
+ typedef ACE_Sample_History SAMPLER;
+#else
+ typedef ACE_Basic_Stats SAMPLER;
+#endif /* COLLECT_AND_DUMP_SAMPLE_HISTORY */
+ SAMPLER *sampler_;
+ };
+
+ /**
+ * @class Controller_exec_i
+ *
+ * CB_Worker home executor implementation class.
+ */
+ class CONTROLLER_EXEC_Export Rate_Controller_Home_i :
+ public virtual Priority_Test::CCM_ControllerHome,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default ctor.
+ Rate_Controller_Home_i (CORBA::Long hertz);
+
+ /// Default dtor.
+ ~Rate_Controller_Home_i ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ private:
+ CORBA::Long hertz_;
+ };
+
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome25_Impl (void);
+
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome50_Impl (void);
+
+extern "C" CONTROLLER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createControllerHome75_Impl (void);
+
+#endif /* RATE_CONTROLLER_H */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/client.cpp b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/client.cpp
new file mode 100644
index 00000000000..bbcf0065e8a
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Controllers/client.cpp
@@ -0,0 +1,131 @@
+// $Id$
+/**
+ * @file client.cpp
+ *
+ * This program interact with a Controller component
+ */
+
+#include "ControllerC.h"
+#include "ace/Get_Opt.h"
+#include "ace/streams.h"
+
+int ctrl_off = 0;
+long work = 80;
+typedef ACE_Unbounded_Stack<ACE_CString> STRING_STACK;
+typedef ACE_Unbounded_Stack<Priority_Test::Controller_var> CTRL_STACK;
+
+int
+parse_args (int argc, char *argv[], STRING_STACK &iors)
+{
+ ACE_Get_Opt get_opts (argc, argv, "k:fw:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+
+ case 'k':
+ iors.push (get_opts.opt_arg ());
+ break;
+
+ case 'f': // Turn off controller
+ ctrl_off = 1;
+ break;
+
+ case 'w':
+ work = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-k <Controller IOR>\n"
+ "-w <work amount>\n"
+ "-f: Turn off Controller\n"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ if (iors.is_empty () && ctrl_off == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Please provide controller IOR\n"),
+ -1);
+
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ ACE_TRY_NEW_ENV
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
+
+ STRING_STACK IORs;
+
+ if (parse_args (argc, argv, IORs) != 0)
+ return -1;
+
+
+ CTRL_STACK controllers;
+
+ while (!IORs.is_empty ())
+ {
+ ACE_CString ior;
+ IORs.top (ior);
+ CORBA::Object_var obj
+ = orb->string_to_object (ior.c_str ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ Priority_Test::Controller_var ctrlr
+ = Priority_Test::Controller::_narrow (obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (CORBA::is_nil (ctrlr.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR,
+ "Unable to acquire 'Controller' objref\n",
+ ior.c_str ()));
+ }
+ else
+ {
+ controllers.push (ctrlr);
+ }
+ IORs.pop (ior);
+
+ }
+
+ while (! controllers.is_empty ())
+ {
+ Priority_Test::Controller_var ctrlr;
+ controllers.top (ctrlr);
+
+ if (ctrl_off != 0)
+ ctrlr->stop (ACE_ENV_SINGLE_ARG_PARAMETER);
+ else
+ ctrlr->start (work
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ controllers.pop (ctrlr);
+ }
+
+ orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "Who is the culprit \n");
+ cerr << "Uncaught CORBA exception" << endl;
+ return 1;
+ }
+ ACE_ENDTRY;
+
+ return 0;
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.idl b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.idl
new file mode 100644
index 00000000000..f0268ad3a42
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.idl
@@ -0,0 +1,46 @@
+// $Id$
+
+/**
+ * @file Priority_Test.idl
+ *
+ * Definition of events, and common interfaces used in Priority_Test module.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef CIAO_PRIORITY_TEST_IDL
+#define CIAO_PRIORITY_TEST_IDL
+
+#include <Components.idl>
+
+module Priority_Test
+{
+ /**
+ * @brief interface Op_Mode defines the "operation mode" interface.
+ */
+ interface Op_Mode
+ {
+ /// Start with arg.
+ void start (in long arg);
+
+ void stop ();
+ };
+
+ /**
+ * @brief interface Common_Ops defines some "common" operations. It
+ * is intended to be used as the interface type of a facet or a
+ * receptacle. All operations in the interface are rather generic
+ * and the actualy component implmenetion should decide what they
+ * actually do.
+ *
+ * @param work the amount of work to be done
+ * @param aux auxiliary parameter
+ */
+ interface Common_Ops
+ {
+ long do_work (in long work,
+ in long aux);
+ };
+};
+
+#endif /* CIAO_PRIORITY_TEST_IDL */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.mpc b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.mpc
new file mode 100644
index 00000000000..888d0005c99
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test.mpc
@@ -0,0 +1,30 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Priority_Test"
+
+project(Priority_Test_stub): ciao_client {
+
+ sharedname = Priority_Test_stub
+ idlflags += -Wb,stub_export_macro=PRIORITY_TEST_STUB_Export -Wb,stub_export_include=Priority_Test_stub_export.h -Wb,skel_export_macro=PRIORITY_TEST_SVNT_Export -Wb,skel_export_include=Priority_Test_svnt_export.h
+ dynamicflags = PRIORITY_TEST_STUB_BUILD_DLL
+
+ IDL_Files {
+ Priority_Test.idl
+ }
+
+ Source_Files {
+ Priority_TestC.cpp
+ }
+}
+
+project(Priority_Test_svnt) : ciao_servant {
+ after += Priority_Test_stub
+ sharedname = Priority_Test_svnt
+ libs += Priority_Test_stub
+
+ idlflags += -Wb,export_macro=PRIORITY_TEST_SVNT_Export -Wb,export_include=Priority_Test_svnt_export.h
+ dynamicflags = PRIORITY_TEST_SVNT_BUILD_DLL
+
+ Source_Files {
+ Priority_TestS.cpp
+ }
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_stub_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_stub_export.h
new file mode 100644
index 00000000000..7c94cc23525
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl PRIORITY_TEST_STUB
+// ------------------------------
+#ifndef PRIORITY_TEST_STUB_EXPORT_H
+#define PRIORITY_TEST_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (PRIORITY_TEST_STUB_HAS_DLL)
+# define PRIORITY_TEST_STUB_HAS_DLL 1
+#endif /* ! PRIORITY_TEST_STUB_HAS_DLL */
+
+#if defined (PRIORITY_TEST_STUB_HAS_DLL) && (PRIORITY_TEST_STUB_HAS_DLL == 1)
+# if defined (PRIORITY_TEST_STUB_BUILD_DLL)
+# define PRIORITY_TEST_STUB_Export ACE_Proper_Export_Flag
+# define PRIORITY_TEST_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define PRIORITY_TEST_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* PRIORITY_TEST_STUB_BUILD_DLL */
+# define PRIORITY_TEST_STUB_Export ACE_Proper_Import_Flag
+# define PRIORITY_TEST_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define PRIORITY_TEST_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* PRIORITY_TEST_STUB_BUILD_DLL */
+#else /* PRIORITY_TEST_STUB_HAS_DLL == 1 */
+# define PRIORITY_TEST_STUB_Export
+# define PRIORITY_TEST_STUB_SINGLETON_DECLARATION(T)
+# define PRIORITY_TEST_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* PRIORITY_TEST_STUB_HAS_DLL == 1 */
+
+// Set PRIORITY_TEST_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (PRIORITY_TEST_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define PRIORITY_TEST_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define PRIORITY_TEST_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !PRIORITY_TEST_STUB_NTRACE */
+
+#if (PRIORITY_TEST_STUB_NTRACE == 1)
+# define PRIORITY_TEST_STUB_TRACE(X)
+#else /* (PRIORITY_TEST_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define PRIORITY_TEST_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (PRIORITY_TEST_STUB_NTRACE == 1) */
+
+#endif /* PRIORITY_TEST_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_svnt_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_svnt_export.h
new file mode 100644
index 00000000000..ea8969a9a6d
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Priority_Test_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl PRIORITY_TEST_SVNT
+// ------------------------------
+#ifndef PRIORITY_TEST_SVNT_EXPORT_H
+#define PRIORITY_TEST_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (PRIORITY_TEST_SVNT_HAS_DLL)
+# define PRIORITY_TEST_SVNT_HAS_DLL 1
+#endif /* ! PRIORITY_TEST_SVNT_HAS_DLL */
+
+#if defined (PRIORITY_TEST_SVNT_HAS_DLL) && (PRIORITY_TEST_SVNT_HAS_DLL == 1)
+# if defined (PRIORITY_TEST_SVNT_BUILD_DLL)
+# define PRIORITY_TEST_SVNT_Export ACE_Proper_Export_Flag
+# define PRIORITY_TEST_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define PRIORITY_TEST_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* PRIORITY_TEST_SVNT_BUILD_DLL */
+# define PRIORITY_TEST_SVNT_Export ACE_Proper_Import_Flag
+# define PRIORITY_TEST_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define PRIORITY_TEST_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* PRIORITY_TEST_SVNT_BUILD_DLL */
+#else /* PRIORITY_TEST_SVNT_HAS_DLL == 1 */
+# define PRIORITY_TEST_SVNT_Export
+# define PRIORITY_TEST_SVNT_SINGLETON_DECLARATION(T)
+# define PRIORITY_TEST_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* PRIORITY_TEST_SVNT_HAS_DLL == 1 */
+
+// Set PRIORITY_TEST_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (PRIORITY_TEST_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define PRIORITY_TEST_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define PRIORITY_TEST_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !PRIORITY_TEST_SVNT_NTRACE */
+
+#if (PRIORITY_TEST_SVNT_NTRACE == 1)
+# define PRIORITY_TEST_SVNT_TRACE(X)
+#else /* (PRIORITY_TEST_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define PRIORITY_TEST_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (PRIORITY_TEST_SVNT_NTRACE == 1) */
+
+#endif /* PRIORITY_TEST_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp
new file mode 100644
index 00000000000..ac9c71bbe29
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp
@@ -0,0 +1,127 @@
+// $Id$
+
+#include "CB_Worker_exec.h"
+#include "CIAO_common.h"
+
+// This should really be a configurable value. CIAO doesn't suppor
+// this yet but the new D&C shall support this RSN.
+static long local_primer_ = 9619;
+
+/// Default constructor.
+MyImpl::CB_Worker_exec::CB_Worker_exec ()
+{
+}
+
+/// Default destructor.
+MyImpl::CB_Worker_exec::~CB_Worker_exec ()
+{
+}
+
+// Operations from Priority_Test::Worker
+
+Priority_Test::CCM_Common_Ops_ptr
+MyImpl::CB_Worker_exec::get_some_device (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return Priority_Test::CCM_Common_Ops::_duplicate (this);
+}
+
+// Operations from Priority_Test::Common_Ops
+
+CORBA::Long
+MyImpl::CB_Worker_exec::do_work (CORBA::Long work,
+ CORBA::Long aux
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // aux is not use for now, so do something with it.
+ CORBA::ULong retv = work + aux;
+
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "CB_Worker::do_work: %hd units of work\n",
+ work));
+
+ for (; work != 0; --work)
+ ACE::is_prime (local_primer_,
+ 2,
+ local_primer_ / 2);
+
+ return retv;
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::CB_Worker_exec::set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::CB_Worker_exec::set_session_context\n"));
+
+ this->context_ =
+ Priority_Test::CCM_Worker_Context::_narrow (ctx
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (this->context_.in ()))
+ ACE_THROW (CORBA::INTERNAL ());
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::CB_Worker_exec::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::CB_Worker_exec::ccm_activate\n"));
+}
+
+void
+MyImpl::CB_Worker_exec::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::CB_Worker_exec::ccm_passivate\n"));
+}
+
+void
+MyImpl::CB_Worker_exec::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::CB_Worker_exec::ccm_remove\n"));
+}
+
+/// Default ctor.
+MyImpl::CB_Worker_Home_exec::CB_Worker_Home_exec ()
+{
+}
+
+/// Default dtor.
+MyImpl::CB_Worker_Home_exec::~CB_Worker_Home_exec ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::CB_Worker_Home_exec::create (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ return new MyImpl::CB_Worker_exec;
+}
+
+
+extern "C" WORKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createWorkerHome_Impl (void)
+{
+ return new MyImpl::CB_Worker_Home_exec;
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.h
new file mode 100644
index 00000000000..ea708780acd
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.h
@@ -0,0 +1,117 @@
+// $Id$
+
+/**
+ * @file CB_Worker_exec.h
+ *
+ * Header file for the actual CB_Worker and CB_WorkerHome component
+ * implementations. These classes are the implementations of local
+ * interfaces defined in WorkerEI.idl.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef CB_WORKER_EXEC_H
+#define CB_WORKER_EXEC_H
+
+#include "WorkerEIC.h"
+#include "tao/LocalObject.h"
+
+// The namespace name for the actual implementation classes doesn't
+// really matter. Since there may be several different
+// implementations for a component, they can very well be in different
+// namespaces.
+namespace MyImpl
+{
+ /**
+ * @class CB_Worker_exec
+ *
+ * A compute-bound worker executor implementation class.
+ */
+ class WORKER_EXEC_Export CB_Worker_exec :
+ public virtual Priority_Test::Worker_Exec,
+ // CIAO container implementation depends on correct reference
+ // counting of local interfaces, so we take a short cut to
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default constructor.
+ CB_Worker_exec ();
+
+ /// Default destructor.
+ ~CB_Worker_exec ();
+
+ // Operations from Priority_Test::Worker
+
+ virtual Priority_Test::CCM_Common_Ops_ptr
+ get_some_device (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Priority_Test::Common_Ops
+
+ virtual CORBA::Long
+ do_work (CORBA::Long work,
+ CORBA::Long aux
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+ protected:
+ /// Copmponent specific context
+ Priority_Test::CCM_Worker_Context_var context_;
+ };
+
+ /**
+ * @class CB_Worker_exec
+ *
+ * CB_Worker home executor implementation class.
+ */
+ class WORKER_EXEC_Export CB_Worker_Home_exec :
+ public virtual Priority_Test::CCM_WorkerHome,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default ctor.
+ CB_Worker_Home_exec ();
+
+ /// Default dtor.
+ ~CB_Worker_Home_exec ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+ };
+
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" WORKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createWorkerHome_Impl (void);
+
+#endif /* CB_WORKER_EXEC_H */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp
new file mode 100644
index 00000000000..b51b34e567c
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp
@@ -0,0 +1,115 @@
+// $Id$
+
+#include "IOB_Worker_exec.h"
+#include "CIAO_common.h"
+
+/// Default constructor.
+MyImpl::IOB_Worker_exec::IOB_Worker_exec ()
+{
+}
+
+/// Default destructor.
+MyImpl::IOB_Worker_exec::~IOB_Worker_exec ()
+{
+}
+
+// Operations from Priority_Test::Worker
+
+Priority_Test::CCM_Common_Ops_ptr
+MyImpl::IOB_Worker_exec::get_some_device (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return Priority_Test::CCM_Common_Ops::_duplicate (this);
+}
+
+// Operations from Priority_Test::Common_Ops
+
+CORBA::Long
+MyImpl::IOB_Worker_exec::do_work (CORBA::Long work,
+ CORBA::Long aux
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ CORBA::ULong retv = work - aux;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::IOB_Worker_exec::do_work (%d, %d) = %d\n",
+ work, aux, retv));
+ return retv;
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::IOB_Worker_exec::set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::IOB_Worker_exec::set_session_context\n"));
+
+ this->context_ =
+ Priority_Test::CCM_Worker_Context::_narrow (ctx
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (this->context_.in ()))
+ ACE_THROW (CORBA::INTERNAL ());
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::IOB_Worker_exec::ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::IOB_Worker_exec::ccm_activate\n"));
+}
+
+void
+MyImpl::IOB_Worker_exec::ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::IOB_Worker_exec::ccm_passivate\n"));
+}
+
+void
+MyImpl::IOB_Worker_exec::ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::IOB_Worker_exec::ccm_remove\n"));
+}
+
+/// Default ctor.
+MyImpl::IOB_Worker_Home_exec::IOB_Worker_Home_exec ()
+{
+}
+
+/// Default dtor.
+MyImpl::IOB_Worker_Home_exec::~IOB_Worker_Home_exec ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::IOB_Worker_Home_exec::create (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException))
+{
+ return new MyImpl::IOB_Worker_exec;
+}
+
+
+extern "C" WORKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createWorkerHome_Impl (void)
+{
+ return new MyImpl::IOB_Worker_Home_exec;
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h
new file mode 100644
index 00000000000..1567915d5cc
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h
@@ -0,0 +1,117 @@
+// $Id$
+
+/**
+ * @file IOB_Worker_exec.h
+ *
+ * Header file for the actual IOB_Worker and IOB_WorkerHome component
+ * implementations. These classes are the implementations of local
+ * interfaces defined in WorkerEI.idl.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef IOB_WORKER_EXEC_H
+#define IOB_WORKER_EXEC_H
+
+#include "WorkerEIC.h"
+#include "tao/LocalObject.h"
+
+// The namespace name for the actual implementation classes doesn't
+// really matter. Since there may be several different
+// implementations for a component, they can very well be in different
+// namespaces.
+namespace MyImpl
+{
+ /**
+ * @class IOB_Worker_exec
+ *
+ * A compute-bound worker executor implementation class.
+ */
+ class WORKER_EXEC_Export IOB_Worker_exec :
+ public virtual Priority_Test::Worker_Exec,
+ // CIAO container implementation depends on correct reference
+ // counting of local interfaces, so we take a short cut to
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default constructor.
+ IOB_Worker_exec ();
+
+ /// Default destructor.
+ ~IOB_Worker_exec ();
+
+ // Operations from Priority_Test::Worker
+
+ virtual Priority_Test::CCM_Common_Ops_ptr
+ get_some_device (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Priority_Test::Common_Ops
+
+ virtual CORBA::Long
+ do_work (CORBA::Long work,
+ CORBA::Long aux
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (Components::SessionContext_ptr ctx
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+
+ virtual void
+ ccm_remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+ protected:
+ /// Copmponent specific context
+ Priority_Test::CCM_Worker_Context_var context_;
+ };
+
+ /**
+ * @class IOB_Worker_exec
+ *
+ * IOB_Worker home executor implementation class.
+ */
+ class WORKER_EXEC_Export IOB_Worker_Home_exec :
+ public virtual Priority_Test::CCM_WorkerHome,
+ public virtual TAO_Local_RefCounted_Object
+ {
+ public:
+ /// Default ctor.
+ IOB_Worker_Home_exec ();
+
+ /// Default dtor.
+ ~IOB_Worker_Home_exec ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Components::CCMException));
+ };
+
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" WORKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createWorkerHome_Impl (void);
+
+#endif /* IOB_WORKER_EXEC_H */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/README b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/README
new file mode 100644
index 00000000000..b3fdb9f95b9
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/README
@@ -0,0 +1,20 @@
+$Id$
+
+This directory contains the implementations for worker components.
+They have the same component definition and share the same
+stub/skeleton/servant lib implementations. That is, they appear to be
+the same to their client but they behave differently.
+
+Workers provide the Common_Ops interface which allows their client to
+request them to "do some work." Two differnt kinds of worker
+components are available here:
+
+1. Compute_Bound worker (CB_Worker)
+
+ Upon receiving a request to perform some work, it will perform some
+ heavy computation and eat up a lot of CPU cycles before returning.
+
+2. IO_Bound worker (IOB_Worker)
+
+ Upon receiving a request to perform some work, it will perform some
+ I/O operations before returning.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.cidl b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.cidl
new file mode 100644
index 00000000000..b30f3994117
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.cidl
@@ -0,0 +1,12 @@
+// $Id$ -*- IDL -*-
+
+#include "Worker.idl"
+
+composition session Worker_Impl
+{
+ home executor WorkerHome_exec
+ {
+ implements Priority_Test::WorkerHome;
+ manages Worker_exec;
+ };
+};
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.idl b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.idl
new file mode 100644
index 00000000000..4f1a5b4a5bf
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.idl
@@ -0,0 +1,29 @@
+// $Id$
+
+/**
+ * @file Worker.idl
+ *
+ * Definition of a Worker component that does some work. This work
+ * can be either compute-bound or I/O-bound.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef WORKER_IDL
+#define WORKER_IDL
+
+#include "../Priority_Test.idl"
+
+module Priority_Test
+{
+ component Worker
+ {
+ provides Common_Ops some_device;
+ };
+
+ home WorkerHome manages Worker
+ {
+ };
+};
+
+#endif /* WORKER_IDL */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.mpc b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.mpc
new file mode 100644
index 00000000000..0b8c74f81b0
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker.mpc
@@ -0,0 +1,78 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -l .. -p Priority_Test -i Worker"
+
+project(Priority_Test_Worker_stub): ciao_client {
+ after += Priority_Test_stub
+ sharedname = Worker_stub
+ idlflags += -Wb,stub_export_macro=WORKER_STUB_Export -Wb,stub_export_include=Worker_stub_export.h -Wb,skel_export_macro=WORKER_SVNT_Export -Wb,skel_export_include=Worker_svnt_export.h
+ dynamicflags = WORKER_STUB_BUILD_DLL
+
+ IDL_Files {
+ Worker.idl
+ }
+
+ Source_Files {
+ WorkerC.cpp
+ }
+}
+
+project(Priority_Test_Worker_svnt) : ciao_servant {
+ after += Priority_Test_svnt Priority_Test_Worker_stub
+ sharedname = Worker_svnt
+ libs += Worker_stub Priority_Test_stub Priority_Test_svnt
+ libpaths += ..
+ idlflags += -Wb,export_macro=WORKER_SVNT_Export -Wb,export_include=Worker_svnt_export.h
+ dynamicflags = WORKER_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ Worker.cidl
+ }
+
+ IDL_Files {
+ WorkerE.idl
+ }
+
+ Source_Files {
+ WorkerEC.cpp
+ WorkerS.cpp
+ Worker_svnt.cpp
+ }
+}
+
+// Compute-bound worker component
+project(Priority_Test_CB_Worker_exec) : ciao_component {
+ after += Priority_Test_Worker_svnt
+ sharedname = CB_Worker_exec
+ libs += Worker_stub Worker_svnt Priority_Test_stub Priority_Test_svnt
+ libpaths += ..
+ idlflags += -Wb,export_macro=WORKER_EXEC_Export -Wb,export_include=Worker_exec_export.h
+ dynamicflags = WORKER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ WorkerEI.idl
+ }
+
+ Source_Files {
+ WorkerEIC.cpp
+ CB_Worker_exec.cpp
+ }
+}
+
+// IO-bound worker component
+project(Priority_Test_IOB_Worker_exec) : ciao_component {
+ after += Priority_Test_Worker_svnt
+ sharedname = IOB_Worker_exec
+ libs += Worker_stub Worker_svnt Priority_Test_stub Priority_Test_svnt
+ libpaths += ..
+ idlflags += -Wb,export_macro=WORKER_EXEC_Export -Wb,export_include=Worker_exec_export.h
+ dynamicflags = WORKER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ WorkerEI.idl
+ }
+
+ Source_Files {
+ WorkerEIC.cpp
+ IOB_Worker_exec.cpp
+ }
+}
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/WorkerEI.idl b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/WorkerEI.idl
new file mode 100644
index 00000000000..d219d91fbb4
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/WorkerEI.idl
@@ -0,0 +1,33 @@
+// $Id$
+
+/**
+ * @file WorkerEI.idl
+ *
+ * Definition of the Worker component implementation.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef WORKEREI_IDL
+#define WORKEREI_IDL
+
+#include "WorkerE.idl"
+
+module Priority_Test
+{
+ /**
+ * @interface Worker_Exec
+ *
+ * The actually Worker executor inherits from both CCM_Worker and
+ * CCM_position interfaces as a monolithic implementation.
+ */
+ local interface Worker_Exec :
+ CCM_Worker,
+ CCM_Common_Ops,
+ Components::SessionComponent
+ {
+ };
+
+};
+
+#endif /* WORKEREI_IDL */
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_exec_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_exec_export.h
new file mode 100644
index 00000000000..760ae5b4b43
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_exec_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl WORKER_EXEC
+// ------------------------------
+#ifndef WORKER_EXEC_EXPORT_H
+#define WORKER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (WORKER_EXEC_HAS_DLL)
+# define WORKER_EXEC_HAS_DLL 1
+#endif /* ! WORKER_EXEC_HAS_DLL */
+
+#if defined (WORKER_EXEC_HAS_DLL) && (WORKER_EXEC_HAS_DLL == 1)
+# if defined (WORKER_EXEC_BUILD_DLL)
+# define WORKER_EXEC_Export ACE_Proper_Export_Flag
+# define WORKER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define WORKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* WORKER_EXEC_BUILD_DLL */
+# define WORKER_EXEC_Export ACE_Proper_Import_Flag
+# define WORKER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define WORKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* WORKER_EXEC_BUILD_DLL */
+#else /* WORKER_EXEC_HAS_DLL == 1 */
+# define WORKER_EXEC_Export
+# define WORKER_EXEC_SINGLETON_DECLARATION(T)
+# define WORKER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* WORKER_EXEC_HAS_DLL == 1 */
+
+// Set WORKER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (WORKER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define WORKER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define WORKER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !WORKER_EXEC_NTRACE */
+
+#if (WORKER_EXEC_NTRACE == 1)
+# define WORKER_EXEC_TRACE(X)
+#else /* (WORKER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define WORKER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (WORKER_EXEC_NTRACE == 1) */
+
+#endif /* WORKER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_stub_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_stub_export.h
new file mode 100644
index 00000000000..554243fc699
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_stub_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl WORKER_STUB
+// ------------------------------
+#ifndef WORKER_STUB_EXPORT_H
+#define WORKER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (WORKER_STUB_HAS_DLL)
+# define WORKER_STUB_HAS_DLL 1
+#endif /* ! WORKER_STUB_HAS_DLL */
+
+#if defined (WORKER_STUB_HAS_DLL) && (WORKER_STUB_HAS_DLL == 1)
+# if defined (WORKER_STUB_BUILD_DLL)
+# define WORKER_STUB_Export ACE_Proper_Export_Flag
+# define WORKER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define WORKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* WORKER_STUB_BUILD_DLL */
+# define WORKER_STUB_Export ACE_Proper_Import_Flag
+# define WORKER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define WORKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* WORKER_STUB_BUILD_DLL */
+#else /* WORKER_STUB_HAS_DLL == 1 */
+# define WORKER_STUB_Export
+# define WORKER_STUB_SINGLETON_DECLARATION(T)
+# define WORKER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* WORKER_STUB_HAS_DLL == 1 */
+
+// Set WORKER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (WORKER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define WORKER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define WORKER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !WORKER_STUB_NTRACE */
+
+#if (WORKER_STUB_NTRACE == 1)
+# define WORKER_STUB_TRACE(X)
+#else /* (WORKER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define WORKER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (WORKER_STUB_NTRACE == 1) */
+
+#endif /* WORKER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_svnt_export.h b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_svnt_export.h
new file mode 100644
index 00000000000..47efffe1596
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/Workers/Worker_svnt_export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl WORKER_SVNT
+// ------------------------------
+#ifndef WORKER_SVNT_EXPORT_H
+#define WORKER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (WORKER_SVNT_HAS_DLL)
+# define WORKER_SVNT_HAS_DLL 1
+#endif /* ! WORKER_SVNT_HAS_DLL */
+
+#if defined (WORKER_SVNT_HAS_DLL) && (WORKER_SVNT_HAS_DLL == 1)
+# if defined (WORKER_SVNT_BUILD_DLL)
+# define WORKER_SVNT_Export ACE_Proper_Export_Flag
+# define WORKER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define WORKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* WORKER_SVNT_BUILD_DLL */
+# define WORKER_SVNT_Export ACE_Proper_Import_Flag
+# define WORKER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define WORKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* WORKER_SVNT_BUILD_DLL */
+#else /* WORKER_SVNT_HAS_DLL == 1 */
+# define WORKER_SVNT_Export
+# define WORKER_SVNT_SINGLETON_DECLARATION(T)
+# define WORKER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* WORKER_SVNT_HAS_DLL == 1 */
+
+// Set WORKER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (WORKER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define WORKER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define WORKER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !WORKER_SVNT_NTRACE */
+
+#if (WORKER_SVNT_NTRACE == 1)
+# define WORKER_SVNT_TRACE(X)
+#else /* (WORKER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define WORKER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (WORKER_SVNT_NTRACE == 1) */
+
+#endif /* WORKER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CB_Worker.csd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CB_Worker.csd
new file mode 100644
index 00000000000..61404164fa5
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CB_Worker.csd
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- CB_Worker's Software Package Descriptor -->
+<!-- This file describes various CB_Worker executor -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-CB-Worker" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>Compute-bound Worker Component</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A compute-bound Worker executor implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Worker:1.0" homeid="IDL:Priority_Test/WorkerHome:1.0">
+ <fileinarchive name="Worker.idl"/>
+ </idl>
+
+ <!-- We don't need a property file for this example. However, -->
+ <!-- what to do with this element? Cache it in ComponentInstallation? -->
+ <!-- A better question maybe, when do we actually read the file and -->
+ <!-- build the attributes defined in the file? By Assembly perhaps? -->
+ <!-- Notice that this property file applies to the implementation itself. -->
+ <!-- Whatever that means. -->
+<!-- <propertyfile> -->
+<!-- <fileinarchive name="empty.cpf"/> -->
+<!-- </propertyfile> -->
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Worker.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:1EB5F4C6-7F5D-43F2-9A44-E89B6E96377F">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="Worker.ssd"/>
+ <implref idref="DCE:53E7624B-96D9-4E2B-BD73-66A56082AA1A"/>
+ </softpkgref>
+ </dependency>
+
+ <!-- What happens when one define descriptors for both softpkg and -->
+ <!-- implementations? -->
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="CB_Worker_exec"/>
+ <entrypoint>createWorkerHome_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CIAO_Installation_Data.ini b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CIAO_Installation_Data.ini
new file mode 100644
index 00000000000..0a1a4b7254e
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/CIAO_Installation_Data.ini
@@ -0,0 +1,7 @@
+[ComponentInstallation]
+DCE:53E7624B-96D9-4E2B-BD73-66A56082AA1A=Worker_svnt
+DCE:1EB5F4C6-7F5D-43F2-9A44-E89B6E96377F=CB_Worker_exec
+DCE:A99FBAC6-823B-42D3-87B1-404D2DFCD690=IOB_Worker_exec
+DCE:A4981A0E-DF91-46B1-A77C-58B6052CC799=Controller_svnt
+DCE:9663E039-96F8-41BE-BDA9-3BF4654DE996=Controller_exec
+DCE:95CFD762-03EC-4A53-BF11-E15C1834DD17=Rate_Controller_exec
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.csd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.csd
new file mode 100644
index 00000000000..34e6646d9a0
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.csd
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- Controller Software Package Descriptor -->
+<!-- This file describes various Controller executors -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-Controller" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>Controller Component</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A controller executor implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Controller:1.0" homeid="IDL:Priority_Test/ControllerHome:1.0">
+ <fileinarchive name="Controller.idl"/>
+ </idl>
+
+ <!-- We don't need a property file for this example. However, -->
+ <!-- what to do with this element? Cache it in ComponentInstallation? -->
+ <!-- A better question maybe, when do we actually read the file and -->
+ <!-- build the attributes defined in the file? By Assembly perhaps? -->
+ <!-- Notice that this property file applies to the implementation itself. -->
+ <!-- Whatever that means. -->
+<!-- <propertyfile> -->
+<!-- <fileinarchive name="empty.cpf"/> -->
+<!-- </propertyfile> -->
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Controller.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:9663E039-96F8-41BE-BDA9-3BF4654DE996">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="Controller.ssd"/>
+ <implref idref="DCE:A4981A0E-DF91-46B1-A77C-58B6052CC799"/>
+ </softpkgref>
+ </dependency>
+
+ <!-- What happens when one define descriptors for both softpkg and -->
+ <!-- implementations? -->
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Controller_exec"/>
+ <entrypoint>createControllerHome_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.ssd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.ssd
new file mode 100644
index 00000000000..8e51d337fa7
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller.ssd
@@ -0,0 +1,48 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- Controller's Servant Software Descriptor -->
+<!-- This file describes various Controller servants -->
+<!-- implementations. -->
+
+
+<softpkg name="Priority-Test-Controller-Servant" version="1.0">
+ <pkgtype>CIAO Servant</pkgtype>
+ <title>Priority_Test::Controller Servants</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A Controller servant implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Controller:1.0" homeid="IDL:Priority_Test/ControllerHome:1.0">
+ <fileinarchive name="Controller.idl"/>
+ </idl>
+
+ <!-- Duplicate information. We should use the copy in Controller.csd -->
+ <!-- So, do we really need this one? -->
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Controller.ccd"/> <!-- Compoenent descriptors -->
+ </descriptor>
+
+ <implementation id="DCE:A4981A0E-DF91-46B1-A77C-58B6052CC799">
+
+ <dependency type="ORB">
+ <name>TAO</name>
+ </dependency>
+
+ <code>
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Controller_svnt"/>
+ <entrypoint>createControllerHome_Servant</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller25.csd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller25.csd
new file mode 100644
index 00000000000..6b423fff32b
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller25.csd
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- Controller Software Package Descriptor -->
+<!-- This file describes various Controller executors -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-Controller25" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>Controller Component</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A 25hz controller executor implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Controller:1.0" homeid="IDL:Priority_Test/ControllerHome:1.0">
+ <fileinarchive name="Controller.idl"/>
+ </idl>
+
+ <!-- We don't need a property file for this example. However, -->
+ <!-- what to do with this element? Cache it in ComponentInstallation? -->
+ <!-- A better question maybe, when do we actually read the file and -->
+ <!-- build the attributes defined in the file? By Assembly perhaps? -->
+ <!-- Notice that this property file applies to the implementation itself. -->
+ <!-- Whatever that means. -->
+<!-- <propertyfile> -->
+<!-- <fileinarchive name="empty.cpf"/> -->
+<!-- </propertyfile> -->
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Controller.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:95CFD762-03EC-4A53-BF11-E15C1834DD17">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="Controller.ssd"/>
+ <implref idref="DCE:A4981A0E-DF91-46B1-A77C-58B6052CC799"/>
+ </softpkgref>
+ </dependency>
+
+ <!-- What happens when one define descriptors for both softpkg and -->
+ <!-- implementations? -->
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Rate_Controller_exec"/>
+ <entrypoint>createControllerHome25_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller50.csd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller50.csd
new file mode 100644
index 00000000000..6e811cb9956
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller50.csd
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- Controller Software Package Descriptor -->
+<!-- This file describes various Controller executors -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-Controller50" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>Controller Component</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A 50hz controller executor implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Controller:1.0" homeid="IDL:Priority_Test/ControllerHome:1.0">
+ <fileinarchive name="Controller.idl"/>
+ </idl>
+
+ <!-- We don't need a property file for this example. However, -->
+ <!-- what to do with this element? Cache it in ComponentInstallation? -->
+ <!-- A better question maybe, when do we actually read the file and -->
+ <!-- build the attributes defined in the file? By Assembly perhaps? -->
+ <!-- Notice that this property file applies to the implementation itself. -->
+ <!-- Whatever that means. -->
+<!-- <propertyfile> -->
+<!-- <fileinarchive name="empty.cpf"/> -->
+<!-- </propertyfile> -->
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Controller.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:95CFD762-03EC-4A53-BF11-E15C1834DD17">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="Controller.ssd"/>
+ <implref idref="DCE:A4981A0E-DF91-46B1-A77C-58B6052CC799"/>
+ </softpkgref>
+ </dependency>
+
+ <!-- What happens when one define descriptors for both softpkg and -->
+ <!-- implementations? -->
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Rate_Controller_exec"/>
+ <entrypoint>createControllerHome50_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller75.csd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller75.csd
new file mode 100644
index 00000000000..89ba842dd22
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Controller75.csd
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- Controller Software Package Descriptor -->
+<!-- This file describes various Controller executors -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-Controller75" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>Controller Component</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A 75hz controller executor implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Controller:1.0" homeid="IDL:Priority_Test/ControllerHome:1.0">
+ <fileinarchive name="Controller.idl"/>
+ </idl>
+
+ <!-- We don't need a property file for this example. However, -->
+ <!-- what to do with this element? Cache it in ComponentInstallation? -->
+ <!-- A better question maybe, when do we actually read the file and -->
+ <!-- build the attributes defined in the file? By Assembly perhaps? -->
+ <!-- Notice that this property file applies to the implementation itself. -->
+ <!-- Whatever that means. -->
+<!-- <propertyfile> -->
+<!-- <fileinarchive name="empty.cpf"/> -->
+<!-- </propertyfile> -->
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Controller.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:95CFD762-03EC-4A53-BF11-E15C1834DD17">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="Controller.ssd"/>
+ <implref idref="DCE:A4981A0E-DF91-46B1-A77C-58B6052CC799"/>
+ </softpkgref>
+ </dependency>
+
+ <!-- What happens when one define descriptors for both softpkg and -->
+ <!-- implementations? -->
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Rate_Controller_exec"/>
+ <entrypoint>createControllerHome75_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/IOB_Worker.csd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/IOB_Worker.csd
new file mode 100644
index 00000000000..e76018226fe
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/IOB_Worker.csd
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- IOB_Worker's Software Package Descriptor -->
+<!-- This file describes various IOB_Worker executor -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-IOB-Worker" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>IO-bound Worker Component</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A IO-bound Worker executor implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Worker:1.0" homeid="IDL:Priority_Test/WorkerHome:1.0">
+ <fileinarchive name="Worker.idl"/>
+ </idl>
+
+ <!-- We don't need a property file for this example. However, -->
+ <!-- what to do with this element? Cache it in ComponentInstallation? -->
+ <!-- A better question maybe, when do we actually read the file and -->
+ <!-- build the attributes defined in the file? By Assembly perhaps? -->
+ <!-- Notice that this property file applies to the implementation itself. -->
+ <!-- Whatever that means. -->
+<!-- <propertyfile> -->
+<!-- <fileinarchive name="empty.cpf"/> -->
+<!-- </propertyfile> -->
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Worker.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:A99FBAC6-823B-42D3-87B1-404D2DFCD690">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="Worker.ssd"/>
+ <implref idref="DCE:53E7624B-96D9-4E2B-BD73-66A56082AA1A"/>
+ </softpkgref>
+ </dependency>
+
+ <!-- What happens when one define descriptors for both softpkg and -->
+ <!-- implementations? -->
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="IOB_Worker_exec"/>
+ <entrypoint>createWorkerHome_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/NOTE-win.txt b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/NOTE-win.txt
new file mode 100644
index 00000000000..9b1cf7f9595
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/NOTE-win.txt
@@ -0,0 +1,88 @@
+
+cd $CIAO_ROOT/tests/RTCCM/Priority_Test/descriptors/
+$CIAO_ROOT/tools/Daemon/CIAO_Daemon -ORBEndpoint iiop://`hostname`:10000 -n $CIAO_ROOT/tools/ComponentServer/ComponentServer
+
+Conventional test:
+==================
+
+SET CIAO_DEBUG_LEVEL=25
+
+Remote Daemon:
+--------------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Remote Daemon
+ .....\tools\Daemon\CIAO_Daemon -ORBEndpoint iiop://localhost:12000 -n ../../../../tools/ComponentServer/ComponentServer
+
+Local Daemon:
+--------------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Local Daemon
+ .....\tools\Daemon\CIAO_Daemon -ORBEndpoint iiop://localhost:10000 -n ../../../../tools/ComponentServer/ComponentServer
+
+
+Assembly Manager
+-----------------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Assembly Manager
+ .....\tools\Assembly_Deployer\Assembly_Manager -o ior -c test.dat
+
+Assembly Deployer
+-----------------
+
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Assembly Deployer
+ .....\tools\Assembly_Deployer\Assembly_Deployer -k file://ior -o ck_file -a demo.cad
+
+ .....\tools\Assembly_Deployer\Assembly_Deployer -k file://ior -d ck_file
+
+client
+------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Client
+ ..\Controller\client
+
+
+RT-server-test:
+===============
+
+Remote Daemon:
+--------------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Remote Daemon
+ .....\tools\Daemon\CIAO_Daemon -ORBEndpoint iiop://localhost:12000 -n ../../../../tools/RTComponentServer/RTComponentServer -m svcmap.dat
+
+Local Daemon:
+--------------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Local Daemon
+ .....\tools\Daemon\CIAO_Daemon -ORBEndpoint iiop://localhost:10000 -n ../../../../tools/RTComponentServer/RTComponentServer -m svcmap.dat
+
+
+Assembly Manager
+-----------------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Assembly Manager
+ .....\tools\Assembly_Deployer\Assembly_Manager -o ior -c test.dat
+
+Assembly Deployer
+-----------------
+
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Assembly Deployer
+ .....\tools\Assembly_Deployer\Assembly_Deployer -k file://ior -a HUDisplay-rtcad.cad
+
+client
+------
+
+ w:\TAO\CIAO\tests\RTCCM\Priority_Test\descriptors\
+ title Controller
+ ..\Controller\client
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/RTsvc.conf b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/RTsvc.conf
new file mode 100644
index 00000000000..fd9db67aca5
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/RTsvc.conf
@@ -0,0 +1,4 @@
+# No options required for regular testing
+
+# For real-time testing, uncomment the following line:
+static RT_ORB_Loader "-ORBSchedPolicy SCHED_FIFO -ORBScopePolicy SYSTEM"
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Worker.ssd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Worker.ssd
new file mode 100644
index 00000000000..33dd667e512
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/Worker.ssd
@@ -0,0 +1,48 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../../docs/XML/softpkg.dtd">
+
+<!-- Worker's Servant Software Descriptor -->
+<!-- This file describes various Worker servant -->
+<!-- implementations. -->
+
+
+<softpkg name="Priority-Test-Worker-Servant" version="1.0">
+ <pkgtype>CIAO Servant</pkgtype>
+ <title>Priority_Test::Worker Servants</title>
+ <author>
+ <company>Washington University in St. Louis</company>
+ <webpage href="http://www.cs.wustl.edu/~doc/"/>
+ </author>
+ <description>A Worker servant implementation.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Priority_Test/Worker:1.0" homeid="IDL:Priority_Test/WorkerHome:1.0">
+ <fileinarchive name="Worker.idl"/>
+ </idl>
+
+ <!-- Duplicate information. We should use the copy in Worker.csd -->
+ <!-- So, do we really need this one? -->
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Worker.ccd"/> <!-- Compoenent descriptors -->
+ </descriptor>
+
+ <implementation id="DCE:53E7624B-96D9-4E2B-BD73-66A56082AA1A">
+
+ <dependency type="ORB">
+ <name>TAO</name>
+ </dependency>
+
+ <code>
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Worker_svnt"/>
+ <entrypoint>createWorkerHome_Servant</entrypoint>
+ </code>
+
+ </implementation>
+
+ <!-- Let's add more implementation description later when we try to -->
+ <!-- compile this stuff on, say, Solaris and Linux. -->
+
+</softpkg>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic-remote.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic-remote.cad
new file mode 100644
index 00000000000..da0abf2387b
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic-remote.cad
@@ -0,0 +1,55 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<componentassembly id="A basic remote assembly for baseline performance of RTCCM Priority components.">
+ <componentfiles>
+ <componentfile id="com-Controller">
+ <fileinarchive name="Controller.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+ <!-- A plain vanilla partition. We don't even need the processcollocation tag here. -->
+ <homeplacement id="a_ControllerHome">
+ <componentfileref idref="com-Controller"/>
+ <componentinstantiation id="a_Controller">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="controller.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <processcollocation>
+ <homeplacement id="a_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_Worker"/>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_Controller"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_Worker"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_remote.pl b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_remote.pl
new file mode 100755
index 00000000000..12b6882fe19
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_remote.pl
@@ -0,0 +1,99 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$assembly = PerlACE::LocalFile ("basic-remote.cad");
+$am_ior = PerlACE::LocalFile ("am.ior");
+$controller_ior = PerlACE::LocalFile ("controller.ior");
+$cookie = PerlACE::LocalFile ("ck_demo_deployment");
+$topo_config = PerlACE::LocalFile ("remote.dat");
+
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
+unlink $am_ior;
+unlink $cookie;
+
+
+$assembly_manager_args = "-o $am_ior -c $topo_config";
+
+$ad_deploy = " -k file://$am_ior -o $cookie -a $assembly";
+
+$ad_teardown = " -k file://$am_ior -d $cookie -x";
+
+## Starting up the CIAO Assembly Manager
+$AM = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Manager",
+ $assembly_manager_args);
+$AM->Spawn ();
+if (PerlACE::waitforfile_timed ($am_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find assembly ior file <$am_ior>\n";
+ $AM->Kill ();
+ exit 1;
+}
+
+## Now actually deploy the application
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_deploy);
+if ($AD->SpawnWaitKill (60) == -1) {
+ print STDERR "ERROR: Failed to deploy assembly file <$assembly>\n";
+ $AD->Kill ();
+ $AM->Kill ();
+}
+
+## Make sure the application is up and running
+if (PerlACE::waitforfile_timed ($controller_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find controller ior file <$controller_ior>\n";
+ $AM->Kill ();
+ exit 1;
+}
+
+for ($work = 10; $work < 401; $work += 10)
+{
+ printf "Test work: $work\n";
+
+#Start the client to send the trigger message
+ $CL = new PerlACE::Process ("../Controllers/client",
+ "-k file://$controller_ior -w $work");
+ $CL->SpawnWaitKill(60);
+
+## Now wait for the test to complete. Need to figure out a way to
+## detect this.
+ sleep (1);
+}
+
+## Now teardown the application
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_teardown);
+if ($AD->SpawnWaitKill (60) == -1) {
+ print STDERR "ERROR: Failed to teardown assembly file <$assembly>\n";
+ $AD->Kill ();
+ $AM->Kill ();
+ exit 1;
+}
+
+#$AM->WaitKill(5);
+#$AD->WaitKill(5);
+
+$AM->WaitKill (40);
+
+
+unlink $cookie;
+unlink $controller_ior;
+unlink $am_ior;
+
+exit $status;
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_rt.rtd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_rt.rtd
new file mode 100644
index 00000000000..657cc5c3654
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_rt.rtd
@@ -0,0 +1,109 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE rtcad_ext SYSTEM "../../../../docs/XML/ciao_rt_cad_ext.dtd">
+
+<!-- Here is a sample real-time cad file extension descriptor. -->
+<!-- Take a look at the RTCAD-example.cad to see how to associate -->
+<!-- a componentassembly descriptor file with this file and how to -->
+<!-- use the policy sets defined in this file. -->
+
+<rtcad_ext>
+
+ <!-- First, we need to define how we are going to allocate -->
+ <!-- real-time related resources. -->
+ <rtresources>
+
+ <threadpool id="common_pool"
+ stacksize="0"
+ static_threads="2"
+ dynamic_threads="0"
+ priority="1"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpool id="middle_pool"
+ stacksize="0"
+ static_threads="2"
+ dynamic_threads="0"
+ priority="2"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpool id="high_prio_pool"
+ stacksize="0"
+ static_threads="2"
+ dynamic_threads="0"
+ priority="3"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpoolwithlanes
+ id="laned_pool"
+ stacksize="0"
+ borrowing="no"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0">
+ <lane priority="1"
+ static_threads="2"
+ dynamic_threads="0"/>
+ <lane priority="2"
+ static_threads="2"
+ dynamic_threads="0"/>
+ <lane priority="3"
+ static_threads="2"
+ dynamic_threads="0"/>
+ </threadpoolwithlanes>
+
+ <connectionbands id="common_conn">
+ <band low="1" high="1"/>
+ <band low="2" high="2"/>
+ <band low="3" high="3000"/>
+ </connectionbands>
+ </rtresources>
+
+ <!-- Then, we define sets of policies that can be associated with -->
+ <!-- containers (or <homeplacement> rather) -->
+
+ <rtpolicyset id="LOW_POLICY">
+ <priority_model_policy type="server_declared" priority="1"/>
+ <threadpool_policy idref="common_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="MID_POLICY">
+ <priority_model_policy type="server_declared" priority="2"/>
+ <threadpool_policy idref="middle_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="HIGH_POLICY">
+ <priority_model_policy type="server_declared" priority="3"/>
+ <threadpool_policy idref="high_prio_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="LOW_POLICY_LANED_POOL">
+ <priority_model_policy type="server_declared" priority="1"/>
+ <threadpool_policy idref="laned_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="MID_POLICY_LANED_POOL">
+ <priority_model_policy type="server_declared" priority="2"/>
+ <threadpool_policy idref="laned_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="HIGH_POLICY_LANED_POOL">
+ <priority_model_policy type="server_declared" priority="3"/>
+ <threadpool_policy idref="laned_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="HIGH_CONN_POLICY">
+ <priority_model_policy type="client_propagated" priority="2"/>
+ <threadpool_policy idref="high_prio_pool"/>
+ <banded_connection_policy idref="common_conn"/>
+ </rtpolicyset>
+
+</rtcad_ext> \ No newline at end of file
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_test.pl b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_test.pl
new file mode 100755
index 00000000000..f4778ddbfc7
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/basic_test.pl
@@ -0,0 +1,173 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+## Source in the environment setting
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
+
+$status = 0;
+$assembly = PerlACE::LocalFile ("demo.cad");
+$deploy_config = PerlACE::LocalFile ("test.dat");
+#$deploy_config = PerlACE::LocalFile ("remote.dat");
+$daemon_ior = PerlACE::LocalFile ("daemon.ior");
+$am_ior = PerlACE::LocalFile ("am.ior");
+$controller_ior = PerlACE::LocalFile ("controller.ior");
+$cookie = PerlACE::LocalFile ("ck_demo_deployment");
+
+$compserver="$CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+## The following control how to iterate thru various work amount
+$start_work = 10;
+$end_work = 400;
+$work_step = 10;
+$run_time = 30; # run for $run_time sec.
+
+unlink $daemon_ior;
+unlink $am_ior;
+unlink $cookie;
+
+$test_deploy = 0; # Do not run client/controller at all
+$no_daemon = 0; # Do not start daemon process
+$no_stop = 0; # just invoke the start() operation in
+ # client, no stop() invocation.
+
+# Parse command line argument
+while ( $#ARGV >= 0)
+{
+ if ($ARGV[0] =~ m/^-test_deploy/i) {
+ $test_deploy = 1;
+ }
+ elsif ($ARGV[0] =~ m/^-no_daemon/i) {
+ $no_daemon = 1;
+ }
+ elsif ($ARGV[0] =~ m/^-no_stop/i) {
+ $no_stop = 1;
+ }
+ else {
+ die "Invalid flag: $ARGV[0]\n";
+ }
+
+ shift;
+}
+
+# CIAO Daemon command line arguments
+$daemon_args1 = "-ORBEndpoint iiop://localhost:10000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $compserver";
+
+$assembly_manager_args = "-o $am_ior -c $deploy_config";
+
+$ad_deploy = " -k file://$am_ior -o $cookie -a $assembly";
+
+$ad_teardown = " -k file://$am_ior -d $cookie -x";
+
+# CIAO daemon process definition
+$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args1");
+
+if ($no_daemon == 0) {
+## Starting up the CIAO daemon
+ $DS->Spawn ();
+ if (PerlACE::waitforfile_timed ($daemon_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+ }
+}
+
+## Starting up the CIAO Assembly Manager
+$AM = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Manager",
+ $assembly_manager_args);
+$AM->Spawn ();
+if (PerlACE::waitforfile_timed ($am_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find assembly ior file <$am_ior>\n";
+ $AM->Kill ();
+ $DS->Kill ();
+ exit 1;
+}
+
+## Now actually deploy the application
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_deploy);
+if ($AD->SpawnWaitKill (60) == -1) {
+ print STDERR "ERROR: Failed to deploy assembly file <$assembly>\n";
+ $AD->Kill ();
+ $AM->Kill ();
+ $DS->Kill ();
+}
+
+## Make sure the application is up and running
+if (PerlACE::waitforfile_timed ($controller_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find controller ior file <$controller_ior>\n";
+ $AM->Kill ();
+ $DS->Kill ();
+ exit 1;
+}
+
+# Don't start the test
+if ($test_deploy == 0) {
+ for ($work = $start_work; $work < $end_work; $work += $work_step)
+ {
+ printf "Test work: $work\n";
+
+#Start the client to send the trigger message
+ $CL = new PerlACE::Process ("../Controllers/client",
+ "-k file://$controller_ior -w $work");
+ $CL->SpawnWaitKill(60);
+
+ if ($no_stop == 0) {
+## Now wait for the test to complete. Need to figure out a way to
+## detect this.
+ sleep ($run_time);
+
+#Start the client to send the trigger message
+ $CL = new PerlACE::Process ("../Controllers/client",
+ "-k file://$controller_ior -f");
+ $CL->SpawnWaitKill(60);
+ }
+ }
+}
+else {
+ print "Test deploying the application -=-=- Not invoking client\n";
+ sleep (1);
+}
+
+## Now teardown the application
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_teardown);
+if ($AD->SpawnWaitKill (60) == -1) {
+ print STDERR "ERROR: Failed to teardown assembly file <$assembly>\n";
+ $AD->Kill ();
+ $AM->Kill ();
+ $DS->Kill ();
+ exit 1;
+}
+
+#$ctrl = $DS->WaitKill (5);
+#$AM->WaitKill(5);
+#$AD->WaitKill(5);
+
+$AM->WaitKill (2);
+$DS->Kill ();
+
+
+unlink $cookie;
+unlink $controller_ior;
+unlink $daemon_ior;
+unlink $am_ior;
+
+exit $status;
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/bench.conf b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/bench.conf
new file mode 100644
index 00000000000..28aab395bd4
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/bench.conf
@@ -0,0 +1,3 @@
+dynamic Advanced_Resource_Factory Service_Object * TAO_Strategies:_make_TAO_Advanced_Resource_Factory () "-ORBReactorMaskSignals 0 -ORBInputCDRAllocator null -ORBReactorType select_st -ORBConnectionCacheLock null"
+static Server_Strategy_Factory "-ORBPOALock null -ORBAllowReactivationOfSystemids 0"
+static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBProfileLock null -ORBClientConnectionHandler RW"
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-25.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-25.cad
new file mode 100644
index 00000000000..f0cb3080a49
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-25.cad
@@ -0,0 +1,52 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<componentassembly id="A test assembly for RTCCM Priority components.">
+ <componentfiles>
+ <componentfile id="com-Controller">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+ <!-- A plain vanilla partition. We don't even need the processcollocation tag here. -->
+ <homeplacement id="a_ControllerHome">
+ <componentfileref idref="com-Controller"/>
+ <componentinstantiation id="a_Controller">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="controller.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_Worker"/>
+ </homeplacement>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_Controller"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_Worker"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-50.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-50.cad
new file mode 100644
index 00000000000..fee312eff4e
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo-50.cad
@@ -0,0 +1,52 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<componentassembly id="A test assembly for RTCCM Priority components.">
+ <componentfiles>
+ <componentfile id="com-Controller">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+ <!-- A plain vanilla partition. We don't even need the processcollocation tag here. -->
+ <homeplacement id="a_ControllerHome">
+ <componentfileref idref="com-Controller"/>
+ <componentinstantiation id="a_Controller">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="controller.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_Worker"/>
+ </homeplacement>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_Controller"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_Worker"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo.cad
new file mode 100644
index 00000000000..af6f79df6fb
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/demo.cad
@@ -0,0 +1,52 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<componentassembly id="A test assembly for RTCCM Priority components.">
+ <componentfiles>
+ <componentfile id="com-Controller">
+ <fileinarchive name="Controller.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+ <!-- A plain vanilla partition. We don't even need the processcollocation tag here. -->
+ <homeplacement id="a_ControllerHome">
+ <componentfileref idref="com-Controller"/>
+ <componentinstantiation id="a_Controller">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="controller.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_Worker"/>
+ </homeplacement>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_Controller"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_Worker"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/no-rt-3rates.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/no-rt-3rates.cad
new file mode 100644
index 00000000000..00aafadf289
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/no-rt-3rates.cad
@@ -0,0 +1,104 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <homeplacement id="a_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <componentinstantiation id="a_W50"/>
+ <componentinstantiation id="a_W75"/>
+ </homeplacement>
+
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rate_test.pl b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rate_test.pl
new file mode 100755
index 00000000000..653c9b7d9f0
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rate_test.pl
@@ -0,0 +1,193 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+## Source in the environment setting
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
+
+$status = 0;
+$local = 1;
+$assembly = PerlACE::LocalFile ("no-rt-3rates.cad");
+$daemon_ior = PerlACE::LocalFile ("daemon.ior");
+$am_ior = PerlACE::LocalFile ("am.ior");
+$c25_ior = PerlACE::LocalFile ("c25.ior");
+$c50_ior = PerlACE::LocalFile ("c50.ior");
+$c75_ior = PerlACE::LocalFile ("c75.ior");
+$cookie = PerlACE::LocalFile ("ck_demo_deployment");
+
+## The following control how to iterate thru various work amount
+$start_work = 80;
+$end_work = 401;
+$work_step = 10;
+$run_time = 60; # run for $run_time sec.
+
+## Controlling test behavior
+$test_deploy = 0;
+$no_daemon = 0;
+$reverse_call_order = 0;
+
+# Parse command line argument
+while ( $#ARGV >= 0)
+{
+ if ($ARGV[0] =~ m/^-test_deploy/i) {
+ $test_deploy = 1;
+ }
+ elsif ($ARGV[0] =~ m/^-remote/i) {
+ $local = 0;
+ }
+ elsif ($ARGV[0] =~ m/^-assembly/i) {
+ shift;
+ if ($#ARGV >= 0) {
+ $assembly = PerlACE::LocalFile ("$ARGV[0]");
+ }
+ }
+ elsif ($ARGV[0] =~ m/^-work_step/i) {
+ shift;
+ if ($#ARGV >= 0) {
+ $work_step = $ARGV[0];
+ }
+ }
+ elsif ($ARGV[0] =~ m/^-reverse_call_order/i) {
+ $reverse_call_order = 1;
+ }
+ else {
+ die "Invalid flag: $ARGV[0]\n";
+ }
+
+ shift;
+}
+
+if ($local == 1) {
+ $deploy_config = PerlACE::LocalFile ("test.dat");
+}
+else {
+ $deploy_config = PerlACE::LocalFile ("remote.dat");
+}
+
+# CIAO Daemon command line arguments
+$daemon_args1 = "-ORBEndpoint iiop://localhost:10000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+$assembly_manager_args = "-o $am_ior -c $deploy_config";
+
+$ad_deploy = " -k file://$am_ior -o $cookie -a $assembly";
+
+$ad_teardown = " -k file://$am_ior -d $cookie -x";
+
+# CIAO daemon process definition
+$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args1");
+
+if ($local == 1) {
+## Starting up the CIAO daemon
+ $DS->Spawn ();
+ if (PerlACE::waitforfile_timed ($daemon_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+ }
+}
+
+for ($work = $start_work; $work < $end_work; $work += $work_step)
+{
+
+ unlink $daemon_ior;
+ unlink $am_ior;
+ unlink $cookie;
+
+## Starting up the CIAO Assembly Manager
+ $AM = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Manager",
+ $assembly_manager_args);
+ $AM->Spawn ();
+ if (PerlACE::waitforfile_timed ($am_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find assembly ior file <$am_ior>\n";
+ $AM->Kill ();
+ $DS->Kill ();
+ exit 1;
+ }
+
+## Now actually deploy the application
+ $AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_deploy);
+ if ($AD->SpawnWaitKill (60) == -1) {
+ print STDERR "ERROR: Failed to deploy assembly file <$assembly>\n";
+ $AD->Kill ();
+ $AM->Kill ();
+ $DS->Kill ();
+ }
+
+## Make sure the application is up and running
+ if (PerlACE::waitforfile_timed ($c75_ior, 15) == -1) {
+ print STDERR "ERROR: Could not find controller ior file <$controller_ior>\n";
+ $AM->Kill ();
+ $DS->Kill ();
+ exit 1;
+ }
+
+ printf "Test work: $work\n";
+
+ if ($reverse_call_order == 0) {
+ $all_iors = "-k file://$c25_ior -k file://$c50_ior -k file://$c75_ior";
+ }
+ else {
+ $all_iors = "-k file://$c50_ior -k file://$c75_ior -k file://$c25_ior";
+ }
+
+#Start the client to send the trigger message
+ $CL = new PerlACE::Process ("../Controllers/client",
+ "$all_iors -w $work");
+ $CL->SpawnWaitKill(60);
+
+## Now wait for the test to complete. Need to figure out a way to
+## detect this.
+ sleep ($run_time);
+
+#Start the client to send the trigger message
+ $CL = new PerlACE::Process ("../Controllers/client",
+ "$all_iors -f");
+ $CL->SpawnWaitKill(60);
+## Now teardown the application
+ $AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_teardown);
+ if ($AD->SpawnWaitKill (60) == -1) {
+ print STDERR "ERROR: Failed to teardown assembly file <$assembly>\n";
+ $AD->Kill ();
+ $AM->Kill ();
+ $DS->Kill ();
+ exit 1;
+ }
+
+#$ctrl = $DS->WaitKill (5);
+#$AM->WaitKill(5);
+#$AD->WaitKill(5);
+
+ $AM->WaitKill (2);
+
+
+ unlink $cookie;
+ unlink $c25_ior;
+ unlink $c50_ior;
+ unlink $c75_ior;
+ unlink $daemon_ior;
+ unlink $am_ior;
+
+}
+
+$DS->Kill ();
+
+exit $status;
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/remote.dat b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/remote.dat
new file mode 100644
index 00000000000..9b5120043fd
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/remote.dat
@@ -0,0 +1,2 @@
+Default corbaloc:iiop:hermione:10000/ServerActivator
+Remote corbaloc:iiop:ron:10000/ServerActivator \ No newline at end of file
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-dec.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-dec.cad
new file mode 100644
index 00000000000..38e7f12e319
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-dec.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_PRIO_HIGH_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_PRIO_HIGH_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_PRIO_HIGH_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">shared_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-inc.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-inc.cad
new file mode 100644
index 00000000000..5e6feba1726
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-inc.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_PRIO_HIGH_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_PRIO_HIGH_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_PRIO_HIGH_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">shared_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-dec.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-dec.cad
new file mode 100644
index 00000000000..e09d35204ad
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-dec.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_PRIO_LOW_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_PRIO_LOW_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_PRIO_LOW_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">shared_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-inc.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-inc.cad
new file mode 100644
index 00000000000..21ace69252a
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-inc.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_PRIO_LOW_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_PRIO_LOW_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_PRIO_LOW_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">shared_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-dec.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-dec.cad
new file mode 100644
index 00000000000..5ca4be3aa03
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-dec.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_PRIO_MID_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_PRIO_MID_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_PRIO_MID_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">shared_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-inc.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-inc.cad
new file mode 100644
index 00000000000..545b23778b1
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-inc.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_PRIO_MID_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_PRIO_MID_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_PRIO_MID_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">shared_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-dec.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-dec.cad
new file mode 100644
index 00000000000..a73e6ba0191
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-dec.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_POLICY</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_POLICY</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_POLICY</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">basic_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-inc.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-inc.cad
new file mode 100644
index 00000000000..7f15969f2e8
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-inc.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_POLICY</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_POLICY</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_POLICY</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">basic_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-dec.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-dec.cad
new file mode 100644
index 00000000000..86056c30586
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-dec.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_POLICY_LANED_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_POLICY_LANED_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_POLICY_LANED_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">basic_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-inc.cad b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-inc.cad
new file mode 100644
index 00000000000..da9d30938e9
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-inc.cad
@@ -0,0 +1,124 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "../../../../docs/XML/componentassembly.dtd">
+
+<!-- 3 rate test with increasing prio = decreasing rate -->
+
+<componentassembly id="A test assembly for 3 worker running on 3 rates.">
+ <componentfiles>
+ <componentfile id="com-Controller25">
+ <fileinarchive name="Controller25.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller50">
+ <fileinarchive name="Controller50.csd"/>
+ </componentfile>
+ <componentfile id="com-Controller75">
+ <fileinarchive name="Controller75.csd"/>
+ </componentfile>
+ <componentfile id="com-Worker">
+ <fileinarchive name="CB_Worker.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <!-- Install component on 2 processes without any RT extension -->
+ <processcollocation>
+ <homeplacement id="a25_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W25"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">LOW_POLICY_LANED_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a50_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W50"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">MID_POLICY_LANED_POOL</extension>
+ </homeplacement>
+
+ <homeplacement id="a75_WorkerHome">
+ <componentfileref idref="com-Worker"/>
+ <componentinstantiation id="a_W75"/>
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">HIGH_POLICY_LANED_POOL</extension>
+ </homeplacement>
+ <extension class="RT-CAD-EXT" origin="CIAO">basic_rt.rtd</extension>
+ </processcollocation>
+
+ <!-- We will run on server's priority -->
+ <processcollocation>
+ <homeplacement id="a_C25Home">
+ <componentfileref idref="com-Controller25"/>
+ <componentinstantiation id="a_C25">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c25.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C50Home">
+ <componentfileref idref="com-Controller50"/>
+ <componentinstantiation id="a_C50">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c50.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_C75Home">
+ <componentfileref idref="com-Controller75"/>
+ <componentinstantiation id="a_C75">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="c75.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C25"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W25"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C50"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W50"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>worker</usesidentifier>
+ <componentinstantiationref idref="a_C75"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>some_device</providesidentifier>
+ <componentinstantiationref idref="a_W75"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/shared_rt.rtd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/shared_rt.rtd
new file mode 100644
index 00000000000..795731a6942
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/shared_rt.rtd
@@ -0,0 +1,95 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE rtcad_ext SYSTEM "../../../../docs/XML/ciao_rt_cad_ext.dtd">
+
+<!-- Here is a sample real-time cad file extension descriptor. -->
+<!-- Take a look at the RTCAD-example.cad to see how to associate -->
+<!-- a componentassembly descriptor file with this file and how to -->
+<!-- use the policy sets defined in this file. -->
+
+<rtcad_ext>
+
+ <!-- First, we need to define how we are going to allocate -->
+ <!-- real-time related resources. -->
+ <rtresources>
+
+ <threadpool id="common_pool"
+ stacksize="0"
+ static_threads="3"
+ dynamic_threads="0"
+ priority="1"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpool id="middle_pool"
+ stacksize="0"
+ static_threads="3"
+ dynamic_threads="0"
+ priority="2"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpool id="high_prio_pool"
+ stacksize="0"
+ static_threads="3"
+ dynamic_threads="0"
+ priority="3"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ </rtresources>
+
+ <!-- Then, we define sets of policies that can be associated with -->
+ <!-- containers (or <homeplacement> rather) -->
+
+ <rtpolicyset id="LOW_PRIO_LOW_POOL">
+ <priority_model_policy type="server_declared" priority="1"/>
+ <threadpool_policy idref="common_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="MID_PRIO_LOW_POOL">
+ <priority_model_policy type="server_declared" priority="2"/>
+ <threadpool_policy idref="common_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="HIGH_PRIO_LOW_POOL">
+ <priority_model_policy type="server_declared" priority="3"/>
+ <threadpool_policy idref="common_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="LOW_PRIO_MID_POOL">
+ <priority_model_policy type="server_declared" priority="1"/>
+ <threadpool_policy idref="middle_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="MID_PRIO_MID_POOL">
+ <priority_model_policy type="server_declared" priority="2"/>
+ <threadpool_policy idref="middle_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="HIGH_PRIO_MID_POOL">
+ <priority_model_policy type="server_declared" priority="3"/>
+ <threadpool_policy idref="middle_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="LOW_PRIO_HIGH_POOL">
+ <priority_model_policy type="server_declared" priority="1"/>
+ <threadpool_policy idref="high_prio_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="MID_PRIO_HIGH_POOL">
+ <priority_model_policy type="server_declared" priority="2"/>
+ <threadpool_policy idref="high_prio_pool"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="HIGH_PRIO_HIGH_POOL">
+ <priority_model_policy type="server_declared" priority="3"/>
+ <threadpool_policy idref="high_prio_pool"/>
+ </rtpolicyset>
+
+</rtcad_ext> \ No newline at end of file
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/svcmap.dat b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/svcmap.dat
new file mode 100644
index 00000000000..bf226e7184d
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/svcmap.dat
@@ -0,0 +1,3 @@
+RT1,RTsvc.conf
+RT2,RTsvc2.conf
+RT3,RTsvc3.conf
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.dat b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.dat
new file mode 100644
index 00000000000..d26b3d4e070
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.dat
@@ -0,0 +1,2 @@
+Default corbaloc:iiop:localhost:10000/ServerActivator
+Remote corbaloc:iiop:localhost:12000/ServerActivator \ No newline at end of file
diff --git a/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.rtd b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.rtd
new file mode 100644
index 00000000000..f29890c21aa
--- /dev/null
+++ b/TAO/CIAO/tests/RTCCM/Priority_Test/descriptors/test.rtd
@@ -0,0 +1,93 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE rtcad_ext SYSTEM "../../../../docs/XML/ciao_rt_cad_ext.dtd">
+
+<!-- Here is a sample real-time cad file extension descriptor. -->
+<!-- Take a look at the RTCAD-example.cad to see how to associate -->
+<!-- a componentassembly descriptor file with this file and how to -->
+<!-- use the policy sets defined in this file. -->
+
+<rtcad_ext>
+
+ <!-- First, we need to define how we are going to allocate -->
+ <!-- real-time related resources. -->
+ <rtresources>
+
+ <threadpoolwithlanes
+ id="shared_pool"
+ stacksize="0"
+ borrowing="no"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0">
+ <lane priority="1"
+ static_threads="100"
+ dynamic_threads="300"/>
+ <lane priority="2"
+ static_threads="2"
+ dynamic_threads="2"/>
+ <lane priority="3"
+ static_threads="1"
+ dynamic_threads="2"/>
+ </threadpoolwithlanes>
+
+ <threadpool id="common_pool"
+ stacksize="0"
+ static_threads="10"
+ dynamic_threads="20"
+ priority="1"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpool id="high_prio_pool"
+ stacksize="0"
+ static_threads="2"
+ dynamic_threads="2"
+ priority="3"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0"/>
+
+ <threadpoolwithlanes
+ id="laned_pool"
+ stacksize="0"
+ borrowing="no"
+ buffering="no"
+ max_buffer="0"
+ buffer_size="0">
+ <lane priority="1"
+ static_threads="10"
+ dynamic_threads="30"/>
+ <lane priority="2"
+ static_threads="3"
+ dynamic_threads="3"/>
+ <lane priority="3"
+ static_threads="1"
+ dynamic_threads="2"/>
+ </threadpoolwithlanes>
+
+ <connectionbands id="common_conn">
+ <band low="1" high="1"/>
+ <band low="2" high="2"/>
+ <band low="3" high="3000"/>
+ </connectionbands>
+ </rtresources>
+
+ <!-- Then, we define sets of policies that can be associated with -->
+ <!-- containers (or <homeplacement> rather) -->
+
+ <rtpolicyset id="POLICY_1">
+ <priority_model_policy type="server_declared" priority="2"/>
+ <threadpool_policy idref="shared_pool"/>
+ <banded_connection_policy idref="common_conn"/>
+ </rtpolicyset>
+
+ <rtpolicyset id="POLICY_2">
+ <threadpool_policy idref="common_pool"/>
+ <priority_model_policy type="client_propagated" priority="2"/>
+ </rtpolicyset>
+
+</rtcad_ext> \ No newline at end of file
diff --git a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Deployer.cpp b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Deployer.cpp
index 119697ed7d9..b9c5a3550d3 100644
--- a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Deployer.cpp
+++ b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Deployer.cpp
@@ -3,16 +3,23 @@
#include "ciao/CCM_DeploymentC.h"
#include "Assembly_ServiceC.h"
#include "ciao/Client_init.h"
+#include "ciao/Server_init.h"
+#include "ciao/Cookies.h"
#include "ace/Get_Opt.h"
#include "ace/streams.h"
+#include "ace/High_Res_Timer.h"
const char *ior = "file://test.ior";
const char *cad = 0;
+const char *cookie_output = 0;
+const char *cookie_teardown = 0;
+int benchmark = 0;
+int shutdown_server = 0;
int
parse_args (int argc, char *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, "a:k:");
+ ACE_Get_Opt get_opts (argc, argv, "a:k:o:d:tx");
int c;
while ((c = get_opts ()) != -1)
@@ -22,30 +29,155 @@ parse_args (int argc, char *argv[])
cad = get_opts.opt_arg ();
break;
+ case 't':
+ benchmark = 1;
+ break;
+
case 'k':
ior = get_opts.opt_arg ();
break;
+ case 'o':
+ cookie_output = get_opts.opt_arg ();
+ break;
+
+ case 'd':
+ cookie_teardown = get_opts.opt_arg ();
+ break;
+
+ case 'x':
+ shutdown_server = 1;
+ break;
+
case '?':
default:
ACE_ERROR_RETURN ((LM_ERROR,
"usage: %s \n"
"-a <assembly descriptor (.cad)>\n"
+ "-t: turn on deployment timer\n"
+ "-o <filename for outputing assembled cookie>"
+ "-d <filename for cookie to be teardown'ed>"
"-k <Assembly_Manager ior> \n"
"\n",
argv [0]),
-1);
}
- if (cad == 0)
+ if (cookie_output != 0)
+ {
+ if (cad == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Must specify an assembly descriptor using -a flag.\n"),
+ -1);
+ }
+ else if (cookie_teardown == 0)
ACE_ERROR_RETURN ((LM_ERROR,
- "Must specify an assembly descriptor using -a flag.\n"),
+ "Must specify to build or teardown an assembly using -o or -d flage.\n"),
-1);
// Indicates sucessful parsing of the command line
return 0;
}
+void
+create_assembly (Components::Deployment::AssemblyFactory_ptr factory
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+{
+ ACE_High_Res_Timer overall, make_assembly, build_assembly;
+ overall.start (); // Start measuring the overall time to
+ // deploy an application.
+
+ ACE_DEBUG ((LM_DEBUG, "Creating an Assembly with %s\n", cad));
+
+ make_assembly.start (); // Start measuring the time to parse a
+ // cad file and create an assembly object.
+ Components::Cookie_var ck =
+ factory->create_assembly (cad
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ make_assembly.stop (); // Stop measuring
+
+ Components::Deployment::Assembly_var assembly =
+ factory->lookup (ck.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ build_assembly.start (); // Start measuring the time to
+ // instantiate and connect the
+ // application.
+ assembly->build (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ build_assembly.stop ();
+ overall.stop ();
+
+ if (benchmark != 0)
+ {
+ ACE_Time_Value overall_time, make_time, build_time;
+ overall.elapsed_time (overall_time);
+ make_assembly.elapsed_time (make_time);
+ build_assembly.elapsed_time (build_time);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Total deployment time: %d.%06d sec\n"
+ " create assembly time: %d.%06d sec\n"
+ " build assembly time: %d.%06d sec\n",
+ overall_time.sec (), overall_time.usec (),
+ make_time.sec (), make_time.usec (),
+ build_time.sec (), build_time.usec ()));
+ }
+
+ ACE_Active_Map_Manager_Key key;
+ CIAO::Map_Key_Cookie::extract (ck.in (), key);
+
+ // Output Cookie value here.
+ FILE *ckh = ACE_OS::fopen (cookie_output, "w");
+ if (ckh != NULL)
+ {
+ ACE_OS::fprintf (ckh, "%d %d",
+ key.slot_index (),
+ key.slot_generation ());
+
+ ACE_OS::fclose (ckh);
+ }
+ else
+ ACE_ERROR ((LM_ERROR, "Unable to open cookie file: %s\n", cookie_output));
+}
+
+void
+teardown_assembly (Components::Deployment::AssemblyFactory_ptr factory
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+{
+ // Extract and restore Cookie value (ck) here.
+ ACE_UINT32 i, g;
+ FILE *ckh = ACE_OS::fopen (cookie_teardown, "r");
+ if (ckh != NULL)
+ {
+ fscanf (ckh, "%d %d", &i, &g);
+ ACE_OS::fclose (ckh);
+ }
+ else
+ ACE_ERROR ((LM_ERROR, "Unable to open cookie file: %s\n", cookie_teardown));
+
+ CIAO::Map_Key_Cookie ck;
+ ACE_Active_Map_Manager_Key key (i, g);
+ ck.insert (key);
+
+ // Look up the assembly from the factory.
+ Components::Deployment::Assembly_var assembly =
+ factory->lookup (&ck
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ assembly->tear_down (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ factory->destroy (&ck
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+}
+
int
main (int argc, char *argv[])
{
@@ -58,7 +190,7 @@ main (int argc, char *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- CIAO::Client_init (orb.in ());
+ CIAO::Server_init (orb.in ());
CORBA::Object_var tmp =
orb->string_to_object(ior ACE_ENV_ARG_PARAMETER);
@@ -69,6 +201,14 @@ main (int argc, char *argv[])
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
+ if (CORBA::is_nil (as_svc.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil Assembly Service reference <%s>\n",
+ ior),
+ 1);
+ }
+
::Components::Deployment::AssemblyFactory_var factory =
as_svc->get_assemblyfactory (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
@@ -76,40 +216,27 @@ main (int argc, char *argv[])
if (CORBA::is_nil (factory.in ()))
{
ACE_ERROR_RETURN ((LM_DEBUG,
- "Nil ServerActivator reference <%s>\n",
+ "Nil AssemblyFactory reference <%s>\n",
ior),
1);
}
-
- ACE_DEBUG ((LM_DEBUG, "Try creating an Assembly with %s\n", cad));
-
- Components::Cookie_var ck =
- factory->create_assembly (cad
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- Components::Deployment::Assembly_var assembly =
- factory->lookup (ck.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- assembly->build (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- ACE_DEBUG ((LM_DEBUG, "Press <enter> to tear down the assembly\n"));
- char dummy [256];
- cin.getline (dummy, 256);
-
- assembly->tear_down (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- factory->destroy (ck.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- as_svc->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
+ if (cookie_output != 0)
+ {
+ create_assembly (factory.in () ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ else if (cookie_teardown != 0)
+ {
+ teardown_assembly (factory.in () ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (shutdown_server != 0) // can only shutdown when tearing down stuff.
+ {
+ as_svc->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ }
orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
diff --git a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.cpp b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.cpp
index f7f6c5146ce..8a1a68d3270 100644
--- a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.cpp
+++ b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.cpp
@@ -155,9 +155,10 @@ CIAO::Assembly_Impl::~Assembly_Impl ()
{
// @@ tearing down everything?
- ACE_DEBUG ((LM_DEBUG,
- "CIAO::Assembly_Impl::~Assembly_Impl %d\n",
- this->serial_number_));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "CIAO::Assembly_Impl::~Assembly_Impl %d\n",
+ this->serial_number_));
delete this->assembly_spec_;
}
@@ -186,13 +187,15 @@ CIAO::Assembly_Impl::build (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::CreateFailure))
{
- ACE_DEBUG ((LM_DEBUG,
- "CIAO::Assembly_Impl::build %d\n",
- this->serial_number_));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "CIAO::Assembly_Impl::build %d\n",
+ this->serial_number_));
if (this->state_ == Components::Deployment::INSERVICE)
return; // We are running already.
- ACE_DEBUG ((LM_DEBUG, "------------------------------------\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "------------------------------------\n"));
// Installing homes and instantiating components
@@ -205,7 +208,8 @@ CIAO::Assembly_Impl::build (ACE_ENV_SINGLE_ARG_DECL)
ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
- ACE_DEBUG ((LM_DEBUG, "------------------------------------\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "------------------------------------\n"));
if (build_result != 0)
{
@@ -275,9 +279,10 @@ CIAO::Assembly_Impl::tear_down (ACE_ENV_SINGLE_ARG_DECL)
}
}
- ACE_DEBUG ((LM_DEBUG,
- "CIAO::Assembly_Impl::tear_down %d\n",
- this->serial_number_));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "CIAO::Assembly_Impl::tear_down %d\n",
+ this->serial_number_));
this->state_ = ::Components::Deployment::INACTIVE;
}
@@ -285,9 +290,10 @@ CIAO::Assembly_Impl::tear_down (ACE_ENV_SINGLE_ARG_DECL)
CIAO::Assembly_Impl::get_state (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG,
- "CIAO::Assembly_Impl::get_state %d\n",
- this->serial_number_));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "CIAO::Assembly_Impl::get_state %d\n",
+ this->serial_number_));
return this->state_;
}
diff --git a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.h b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.h
index 4723f70db85..92346f78e96 100644
--- a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.h
+++ b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.h
@@ -30,6 +30,7 @@
#include "../XML_Helpers/Assembly_Spec.h"
#include "Deployment_Configuration.h"
#include "Assembly_Visitors.h"
+#include "ciao/CIAO_common.h"
namespace CIAO
{
diff --git a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.inl b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.inl
index b6abaa37513..6c58ee5369f 100644
--- a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.inl
+++ b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Impl.inl
@@ -22,7 +22,8 @@ CIAO::Assembly_Impl::Assembly_Impl (CORBA::ORB_ptr o,
deployment_config_ (config),
assembly_spec_ (spec)
{
- ACE_DEBUG ((LM_DEBUG,
- "CIAO::Assembly_Impl::Assembly_Impl %d\n",
- this->serial_number_));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "CIAO::Assembly_Impl::Assembly_Impl %d\n",
+ this->serial_number_));
}
diff --git a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Visitors.cpp b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Visitors.cpp
index 55cbec6ca5e..4fcd3da6589 100644
--- a/TAO/CIAO/tools/Assembly_Deployer/Assembly_Visitors.cpp
+++ b/TAO/CIAO/tools/Assembly_Deployer/Assembly_Visitors.cpp
@@ -2,7 +2,7 @@
#include "Assembly_Visitors.h"
#include "../XML_Helpers/XML_Utils.h"
-
+#include "ciao/CIAO_common.h"
#include "ace/OS_NS_stdio.h"
#if !defined (__ACE_INLINE__)
@@ -18,7 +18,8 @@ CIAO::Assembly_Builder_Visitor::visit_Container
(CIAO::Assembly_Placement::Container *c
ACE_ENV_ARG_DECL)
{
- ACE_DEBUG ((LM_DEBUG, "partitioning %s\n", c->id ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "partitioning %s\n", c->id ()));
// This can only happen when we hit a partitioning (root) node.
CIAO::Assembly_Placement::Container::ITERATOR iter (*c);
@@ -82,7 +83,8 @@ CIAO::Assembly_Builder_Visitor::visit_hostcollocation
(CIAO::Assembly_Placement::hostcollocation *hc
ACE_ENV_ARG_DECL)
{
- ACE_DEBUG ((LM_DEBUG, "hostcollocation %s\n", hc->id ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "hostcollocation %s\n", hc->id ()));
CIAO::Assembly_Placement::Container::ITERATOR iter (*hc);
CIAO::Assembly_Placement::Node *node = 0;
@@ -105,7 +107,9 @@ CIAO::Assembly_Builder_Visitor::visit_processcollocation
(CIAO::Assembly_Placement::processcollocation *pc
ACE_ENV_ARG_DECL)
{
- ACE_DEBUG ((LM_DEBUG, "processcollocation %s\n", pc->id ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "processcollocation %s\n", pc->id ()));
+
Components::ConfigValues server_config;
// Destination logical host id.
@@ -138,9 +142,10 @@ CIAO::Assembly_Builder_Visitor::visit_processcollocation
if (rtcad != 0)
{
- ACE_DEBUG ((LM_DEBUG,
- "Using RTCAD file: %s\n",
- rtcad));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG,
+ "Using RTCAD file: %s\n",
+ rtcad));
CORBA::ULong len = server_config.length ();
server_config.length (len+1);
@@ -164,7 +169,9 @@ CIAO::Assembly_Builder_Visitor::visit_processcollocation
activator->create_component_server (server_config
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
- ACE_DEBUG ((LM_DEBUG, "Done creating component server\n"));
+
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Done creating component server\n"));
this->context_.component_servers_.enqueue_tail (this->compserv_);
@@ -195,7 +202,8 @@ CIAO::Assembly_Builder_Visitor::visit_homeplacement
(CIAO::Assembly_Placement::homeplacement *hp
ACE_ENV_ARG_DECL)
{
- ACE_DEBUG ((LM_DEBUG, "homeplacement %s\n", hp->id ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "homeplacement %s\n", hp->id ()));
// @@ Create and register home before creating components.
ACE_CString csd_file;
@@ -302,7 +310,9 @@ CIAO::Assembly_Builder_Visitor::visit_componentinstantiation
ACE_ENV_ARG_DECL)
{
// @@ instantiation and register component.
- ACE_DEBUG ((LM_DEBUG, "ComponentInstantiation %s\n", ci->id ()));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "ComponentInstantiation %s\n", ci->id ()));
+
Components::CCMObject_var comp
= this->home_->create_component (ACE_ENV_SINGLE_ARG_PARAMETER);
@@ -311,10 +321,12 @@ CIAO::Assembly_Builder_Visitor::visit_componentinstantiation
this->context_.instantiated_components_.bind (ci->id (),
comp);
+
// Registering component.
CIAO::Assembly_Placement::componentinstantiation::REGISTRATION_QUEUE::ITERATOR
iter (ci->register_info_);
+
while (!iter.done ())
{
CIAO::Assembly_Placement::componentinstantiation::Register_Info *info;
@@ -334,7 +346,8 @@ CIAO::Assembly_Builder_Visitor::get_current_componentserver (ACE_ENV_SINGLE_ARG_
{
if (CORBA::is_nil (this->compserv_.in ()))
{
- ACE_DEBUG ((LM_DEBUG, "Creating new ComponenetServer\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Creating new ComponenetServer\n"));
Components::Deployment::ServerActivator_var activator =
this->deployment_config_.get_default_activator ();
@@ -393,13 +406,16 @@ CIAO::Assembly_Builder_Visitor::get_container (const char *rtpolicy
this->rtpolicy_name_ = rtpolicy;
- if (rtpolicy != 0)
- ACE_DEBUG ((LM_DEBUG,
- "Creating container with RTPolicySet %s\n",
- rtpolicy));
- else
- ACE_DEBUG ((LM_DEBUG,
- "Creating container with empty policy set\n"));
+ if (CIAO::debug_level () > 10)
+ {
+ if (rtpolicy != 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Creating container with RTPolicySet %s\n",
+ rtpolicy));
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ "Creating container with empty policy set\n"));
+ }
}
return Components::Deployment::Container::_duplicate
diff --git a/TAO/CIAO/tools/Assembly_Deployer/README b/TAO/CIAO/tools/Assembly_Deployer/README
new file mode 100644
index 00000000000..61690fa971e
--- /dev/null
+++ b/TAO/CIAO/tools/Assembly_Deployer/README
@@ -0,0 +1,37 @@
+// $Id$ -*- Outline -*-
+
+* Assembly_Manager
+
+ Assembly_Manager is the daemon process for the assembly framework.
+ It contains the knowledge of "deployment topology".
+
+ Usage:
+
+ Assembly_Manager -c <deployment configuration file> -o <ior_output_file>
+
+ The deployment configuration file contain the mapping from logical
+ host name to actual target name, in corbaloc IOR format.
+
+
+* Assembly_Deployer
+
+ Assembly_Deployer is the controlling program for Assembly_Manager.
+ You can use Assembly_Deployer to deploy and start up an application
+ assembly or to tear down a running application assembly.
+
+ Usage:
+
+ To deploy an assembly:
+
+ Assembly_Deployer -k <ior to Assembly_Manager> \
+ -a <assembly descriptor filename> \
+ -t <benchmark assembly deployment time> \
+ -o <filename to write assembly id to>
+
+ To teardown an assembly:
+
+ Assembly_Deployer -k <ior to Assembly_Manager> \
+ [-d <filename containing assembly id>]
+ [-x]
+
+ -x can be used optionally to shutdown the manager.
diff --git a/TAO/CIAO/tools/ComponentServer/ComponentServer.cpp b/TAO/CIAO/tools/ComponentServer/ComponentServer.cpp
index 5364dc2cc15..8f0f2780e51 100644
--- a/TAO/CIAO/tools/ComponentServer/ComponentServer.cpp
+++ b/TAO/CIAO/tools/ComponentServer/ComponentServer.cpp
@@ -10,8 +10,11 @@
#include "ciao/ComponentServer_Impl.h"
#include "ciao/CIAO_ServersC.h"
#include "ciao/Server_init.h"
+#include "ciao/CIAO_common.h"
#include "ace/SString.h"
#include "ace/Get_Opt.h"
+#include "ace/Env_Value_T.h"
+#include "ace/Sched_Params.h"
char *ior_file_name_ = 0;
char *callback_ior_ = 0;
@@ -32,11 +35,11 @@ parse_args (int argc, char *argv[])
case 'o': // get the file name to write to
ior_file_name_ = get_opts.opt_arg ();
- break;
+ break;
case 'k': // get the activator callback IOR
callback_ior_ = get_opts.opt_arg ();
- break;
+ break;
case '?': // display help for use of the server.
default:
@@ -45,6 +48,7 @@ parse_args (int argc, char *argv[])
"-n Don't not try to callback ServerActivator (testing)\n"
"-o <ior_output_file>\n"
"-k <activator_callback_ior>\n"
+ "-f: Enable to run in FIFO scheduling class\n"
"\n",
argv [0]),
-1);
@@ -60,6 +64,33 @@ parse_args (int argc, char *argv[])
int
main (int argc, char *argv[])
{
+ // Define CIAO_FIFO_SCHED=1 to run component server in FIFO_SCHED class
+ ACE_Env_Value<int> envar ("CIAO_FIFO_SCHED", 0);
+ if (envar != 0)
+ {
+ int priority =
+ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
+ priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO,
+ priority);
+ // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
+
+ if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
+ priority,
+ ACE_SCOPE_PROCESS)) != 0)
+ {
+ if (ACE_OS::last_error () == EPERM)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "ComponentServer (%P|%t): user is not superuser, "
+ "test runs in time-shared class\n"));
+ }
+ else
+ ACE_ERROR ((LM_ERROR,
+ "ComponentServer (%P|%t): sched_params failed\n"));
+ }
+ }
+
ACE_TRY_NEW_ENV
{
// Initialize orb
@@ -164,12 +195,15 @@ main (int argc, char *argv[])
ACE_ENV_ARG_PARAMETER);
CIAO::Utility::write_IOR (ior_file_name_, str.in ());
- ACE_DEBUG ((LM_INFO, "ComponentServer IOR: %s\n", str.in ()));
// End Deployment part
+ if (CIAO::debug_level () > 10)
+ {
+ ACE_DEBUG ((LM_INFO, "ComponentServer IOR: %s\n", str.in ()));
- ACE_DEBUG ((LM_DEBUG,
- "Running ComponentServer...\n"));
+ ACE_DEBUG ((LM_DEBUG,
+ "Running ComponentServer...\n"));
+ }
// Run the main event loop for the ORB.
orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
diff --git a/TAO/CIAO/tools/Daemon/CIAO_Daemon.cpp b/TAO/CIAO/tools/Daemon/CIAO_Daemon.cpp
index 8b55acf5d32..850597e985b 100644
--- a/TAO/CIAO/tools/Daemon/CIAO_Daemon.cpp
+++ b/TAO/CIAO/tools/Daemon/CIAO_Daemon.cpp
@@ -27,11 +27,12 @@ const char *installation_datafile_ = "CIAO_Installation_Data.ini";
char *section_name_ = 0;
char *default_svcconf_ = 0;
char *svcconf_config_ = 0;
+char *extra_flags_ = 0;
int
parse_args (int argc, char *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, "i:n:o:d:s:c:m:");
+ ACE_Get_Opt get_opts (argc, argv, "f:i:n:o:d:s:c:m:");
int c;
while ((c = get_opts ()) != -1)
@@ -66,6 +67,10 @@ parse_args (int argc, char *argv[])
svcconf_config_ = get_opts.opt_arg ();
break;
+ case 'f': // get the extra command line flags for starting component server.
+ extra_flags_ = get_opts.opt_arg ();
+ break;
+
case '?': // display help for use of the server.
default:
ACE_ERROR_RETURN ((LM_ERROR,
@@ -74,12 +79,21 @@ parse_args (int argc, char *argv[])
"-o <ior_output_file>\n"
"-d <time (in second) to wait for component server>\n"
"-i <installation data filename>\n"
+ "-c <default svc.conf file for starting ComponentServer>\n"
+ "-m <svc.conf mapping data file>\n"
"-s <section name to use in installation data file>\n"
- "\n",
+ "-f <extra command line flags for component server>\n",
argv [0]),
-1);
}
+ // Perform some minimum test of the validity of the arguments here.
+ // @@ This didn't work well because of win32 file extension name.
+// ACE_stat csstat;
+// if (ACE_OS::stat (comserv_path_, &csstat) != 0)
+// ACE_DEBUG ((LM_ERROR,
+// "Invalid pathname for ComponentServer\n"), -1);
+
return 0;
}
@@ -198,7 +212,8 @@ main (int argc, char *argv[])
spawn_wait_,
str.in (),
default_svcconf_,
- svcconf_config_
+ svcconf_config_,
+ extra_flags_
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
diff --git a/TAO/CIAO/tools/RTComponentServer/ComponentServer_Task.cpp b/TAO/CIAO/tools/RTComponentServer/ComponentServer_Task.cpp
index b66bea9ff63..44231d834ce 100644
--- a/TAO/CIAO/tools/RTComponentServer/ComponentServer_Task.cpp
+++ b/TAO/CIAO/tools/RTComponentServer/ComponentServer_Task.cpp
@@ -6,6 +6,7 @@
#include "ace/Null_Mutex.h"
#include "ciao/Server_init.h"
#include "ciao/CIAO_ServersC.h"
+#include "ciao/CIAO_common.h"
#include "../XML_Helpers/XML_Utils.h"
#include "tao/RTPortableServer/RTPortableServer.h"
@@ -44,7 +45,8 @@ add_rtcad_configs (const char *rtcadfile,
configs[len] = newconfig;
}
- ACE_DEBUG ((LM_DEBUG, "Done adding RTCAD config\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Done adding RTCAD config\n"));
}
int
@@ -165,13 +167,15 @@ CIAO::ComponentServer_Task::svc ()
if (this->options_.ior_output_filename_.length () != 0)
CIAO::Utility::write_IOR (this->options_.ior_output_filename_.c_str (),
str.in ());
- ACE_DEBUG ((LM_INFO, "RTComponentServer IOR: %s\n", str.in ()));
// End Deployment part
+ if (CIAO::debug_level () > 10)
+ {
+ ACE_DEBUG ((LM_INFO, "RTComponentServer IOR: %s\n", str.in ()));
- ACE_DEBUG ((LM_DEBUG,
- "Running RTComponentServer...\n"));
-
+ ACE_DEBUG ((LM_DEBUG,
+ "Running RTComponentServer...\n"));
+ }
this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
diff --git a/TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.cpp b/TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.cpp
index 986ccd7576b..cfeac13cd7d 100644
--- a/TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.cpp
+++ b/TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.cpp
@@ -1,6 +1,7 @@
// $Id$
#include "RTConfig_Manager.h"
+#include "ciao/CIAO_common.h"
#include "ace/SString.h"
#if !defined (__ACE_INLINE__)
@@ -151,7 +152,8 @@ CIAO::RTPolicy_Set_Manager::init (const CIAO::RTConfiguration::Policy_Sets &sets
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG, "RTPolicy_Set_Manager::init\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "RTPolicy_Set_Manager::init\n"));
for (CORBA::ULong i = 0; i < sets.length (); ++i)
{
@@ -228,7 +230,8 @@ CIAO::RTPolicy_Set_Manager::create_single_policy
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- ACE_DEBUG ((LM_DEBUG, "RTPolicy_Set_Manager::create_single_policy\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "RTPolicy_Set_Manager::create_single_policy\n"));
CORBA::Policy_var retv;
diff --git a/TAO/CIAO/tools/ServerActivator/ServerActivator.cpp b/TAO/CIAO/tools/ServerActivator/ServerActivator.cpp
index dbe5216a6ed..c7a3a786f3e 100644
--- a/TAO/CIAO/tools/ServerActivator/ServerActivator.cpp
+++ b/TAO/CIAO/tools/ServerActivator/ServerActivator.cpp
@@ -131,7 +131,7 @@ main (int argc, char *argv[])
spawn_wait_,
installation_ior_,
0,
- 0
+ 0, 0
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
diff --git a/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp b/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
index 5ad7d038bc9..5587c72b6ef 100644
--- a/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
+++ b/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
@@ -2,6 +2,7 @@
#include "Assembly_Handlers.h"
#include "ace/OS_String.h"
+#include "ciao/CIAO_common.h"
#if !defined (__ACE_INLINE__)
# include "Assembly_Handlers.inl"
@@ -29,7 +30,8 @@ CIAO::Assembly_Handler::startElement (const ACEXML_Char *namespaceURI,
case START:
if (ACE_OS::strcmp (qName, "componentfiles") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "Start componentfiles\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Start componentfiles\n"));
CIAO::XMLHelpers::Cascadable_DocHandler *new_handler;
ACE_NEW (new_handler,
@@ -53,7 +55,8 @@ CIAO::Assembly_Handler::startElement (const ACEXML_Char *namespaceURI,
case COMPONENTFILES_DONE:
if (ACE_OS::strcmp (qName, "partitioning") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "Start partitioning\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Start partitioning\n"));
CIAO::XMLHelpers::Cascadable_DocHandler *new_handler;
ACE_NEW (new_handler,
@@ -78,7 +81,8 @@ CIAO::Assembly_Handler::startElement (const ACEXML_Char *namespaceURI,
case PLACEMENT_DONE:
if (ACE_OS::strcmp (qName, "connections") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "Start connections\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Start connections\n"));
CIAO::XMLHelpers::Cascadable_DocHandler *new_handler;
ACE_NEW (new_handler,
@@ -102,7 +106,8 @@ CIAO::Assembly_Handler::startElement (const ACEXML_Char *namespaceURI,
case CONNECTION_DONE:
if (ACE_OS::strcmp (qName, "extension") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "Start skipping extension\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Start skipping extension\n"));
CIAO::XMLHelpers::Cascadable_DocHandler *new_handler;
ACE_NEW (new_handler,
@@ -144,7 +149,8 @@ CIAO::Assembly_Handler::endElement (const ACEXML_Char *,
case START:
if (ACE_OS::strcmp (qName, "componentfiles") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "End componentfiles\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "End componentfiles\n"));
this->state_ = COMPONENTFILES_DONE;
}
return;
@@ -152,7 +158,8 @@ CIAO::Assembly_Handler::endElement (const ACEXML_Char *,
case COMPONENTFILES_DONE:
if (ACE_OS::strcmp (qName, "partitioning") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "End partitioning\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "End partitioning\n"));
this->state_ = PLACEMENT_DONE;
}
return;
@@ -160,7 +167,8 @@ CIAO::Assembly_Handler::endElement (const ACEXML_Char *,
case PLACEMENT_DONE:
if (ACE_OS::strcmp (qName, "connections") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "End connections\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "End connections\n"));
this->state_ = CONNECTION_DONE;
}
return;
@@ -168,7 +176,8 @@ CIAO::Assembly_Handler::endElement (const ACEXML_Char *,
case CONNECTION_DONE:
if (ACE_OS::strcmp (qName, "extension") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "End skipping extension\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "End skipping extension\n"));
this->state_ = DONE;
}
return;
diff --git a/TAO/CIAO/tools/XML_Helpers/RTConfig_Handlers.cpp b/TAO/CIAO/tools/XML_Helpers/RTConfig_Handlers.cpp
index a57621fa9f8..b6fcfaae9b4 100644
--- a/TAO/CIAO/tools/XML_Helpers/RTConfig_Handlers.cpp
+++ b/TAO/CIAO/tools/XML_Helpers/RTConfig_Handlers.cpp
@@ -2,6 +2,7 @@
#include "RTConfig_Handlers.h"
#include "ace/OS_String.h"
+#include "ciao/CIAO_common.h"
#if !defined (__ACE_INLINE__)
# include "RTConfig_Handlers.inl"
@@ -30,7 +31,8 @@ CIAO::RTConfig_Handler::startElement (const ACEXML_Char *,
}
else if (ACE_OS::strcmp (qName, "rtcad_ext") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "Start parsing RT cad file extension\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "Start parsing RT cad file extension\n"));
}
else
ACEXML_THROW (ACEXML_SAXException
@@ -164,7 +166,8 @@ CIAO::RTConfig_Handler::endElement (const ACEXML_Char *,
case START:
if (ACE_OS::strcmp (qName, "rtcad_ext") == 0)
{
- ACE_DEBUG ((LM_DEBUG, "End parsing RT cad file extension\n"));
+ if (CIAO::debug_level () > 10)
+ ACE_DEBUG ((LM_DEBUG, "End parsing RT cad file extension\n"));
}
return;
diff --git a/TAO/CIAO/tools/XML_Helpers/Svcconf_Handler.cpp b/TAO/CIAO/tools/XML_Helpers/Svcconf_Handler.cpp
index 782420d135b..d8ea5055eb8 100644
--- a/TAO/CIAO/tools/XML_Helpers/Svcconf_Handler.cpp
+++ b/TAO/CIAO/tools/XML_Helpers/Svcconf_Handler.cpp
@@ -53,9 +53,9 @@ Svcconf_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
void
Svcconf_Handler::endElement (const ACEXML_Char *,
- const ACEXML_Char *,
- const ACEXML_Char *qName
- ACEXML_ENV_ARG_DECL)
+ const ACEXML_Char *,
+ const ACEXML_Char *qName
+ ACEXML_ENV_ARG_DECL)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
diff --git a/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc b/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc
index 29000314edc..21f56ae4b74 100644
--- a/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc
+++ b/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-project(XML_Helpers): taolib_with_idl, rtcorba, portableserver, acexml {
+project(XML_Helpers): taolib_with_idl, rtcorba, portableserver, acexml, ciao_client {
sharedname = CIAO_XML_Helpers
idlflags += -Sc -Wb,export_include=XML_Helpers_Export.h \
-Wb,export_macro=CIAO_XML_HELPERS_Export