diff options
author | venkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-05-18 01:02:48 +0000 |
---|---|---|
committer | venkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-05-18 01:02:48 +0000 |
commit | 45465ce976cabd6346aef087d14b6a1133b5021f (patch) | |
tree | 6fb94ee1dccbe3afd43ba0eedba86d598201170d /TAO | |
parent | 3ec406d8235f4e6892c1e2ae414f77d65b1dec99 (diff) | |
download | ATCD-45465ce976cabd6346aef087d14b6a1133b5021f.tar.gz |
Mon May 17 16:16:37 2004 Venkita Subramonian <venkita@cs.wustl.edu>
Diffstat (limited to 'TAO')
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 |