diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-10-19 23:16:58 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-10-19 23:16:58 +0000 |
commit | 0e29e6fabaa2d143e396324e385bc65f4c78101a (patch) | |
tree | ad7d0faccf44dba429d35ed810e532b7b2df5b11 /TAO | |
parent | 049777f4a87b5b7705eebf85f25035fa370c0d4a (diff) | |
download | ATCD-0e29e6fabaa2d143e396324e385bc65f4c78101a.tar.gz |
This commit was manufactured by cvs2svn to create branch
'oci_dave_wchar_refactor_branch'.
Diffstat (limited to 'TAO')
224 files changed, 275 insertions, 20297 deletions
diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog index 87babf592fb..b32f54ab9f7 100644 --- a/TAO/CIAO/ChangeLog +++ b/TAO/CIAO/ChangeLog @@ -1,61 +1,3 @@ -Wed Oct 19 15:03:56 2005 Nanbor Wang <nanbor@exothermic.txcorp.com> - - These changes are made to add support for RT-capable - NodeApplication. - - * ciao/CCM_Core.mpc: - * ciao/Container_Impl.h: - * ciao/Container_Impl.inl: - * ciao/Container_Impl.cpp: - * ciao/NodeApplication_Impl.h: - * ciao/NodeApplication_Impl.inl: - * ciao/NodeApplication_Impl.cpp: Moved NodeApplication and - Container interface implementations under DAnCE/NodeApplication/ - subdir. They are coupled with NodeApplication implementation - now. - - * DAnCE/NodeApplication/NodeApplication.mpc: Changed to - incorporate the following files/changes. - - * DAnCE/NodeApplication/NodeApp_Configurator.h: - * DAnCE/NodeApplication/NodeApp_Configurator.cpp: Added abstract, - base NodeApp_Configurator class to define the interface for - configuring NodeApplication internal. - - * DAnCE/NodeApplication/Container_Impl.h: - * DAnCE/NodeApplication/Container_Impl.inl: - * DAnCE/NodeApplication/Container_Impl.cpp: Moved from ciao/ - subdir. - - * DAnCE/NodeApplication/NodeApplication_Impl.h: - * DAnCE/NodeApplication/NodeApplication_Impl.inl: - * DAnCE/NodeApplication/NodeApplication_Impl.cpp: Changed to - depend on a concrete NodeApp_Configurator to perform the - configuration. - - * DAnCE/NodeApplication/NodeApplication_Core.h: - * DAnCE/NodeApplication/NodeApplication_Core.inl: - * DAnCE/NodeApplication/NodeApplication_Core.cpp: - * DAnCE/NodeApplication/NodeApplication.cpp: Restructured the - NodeApplication implementation so that the ORB event loop can be - run on the main thread or on a separate thread, using the FIFO - scheduling class. - - A new create_configurator method in NodeApplication_Core will - create the "right" concrete configurator based on the command - line flags. We will support a RT configuration soon. - Currently, there's only a NoOp_Configurator for running - NodeApplication without RT support. - - We will add the RT configuration as a dynamic library and will - hook it up via ACE_DLL in a few days. - -Tue Oct 18 16:50:24 2005 William Otte <wotte@dre.vanderbilt.edu> - - * NEWS - - Updated release notes. - Mon Oct 17 13:21:59 2005 William Otte <wotte@dre.vanderbilt.edu> * docs/schema/ccd.xsd diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator.cpp b/TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator.cpp deleted file mode 100644 index 4a2fb822f19..00000000000 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// $Id$ - -#include "NodeApp_Configurator.h" - -CIAO::NodeApp_Configurator::NodeApp_Configurator (CORBA::ORB_ptr o) - : orb_ (CORBA::ORB::_duplicate (o)) -{ -} diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator.h b/TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator.h deleted file mode 100644 index 384f9b7639b..00000000000 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApp_Configurator.h +++ /dev/null @@ -1,69 +0,0 @@ -//$Id$ -/**======================================================== - * - * @file NodeApp_Configurator.h - * - * @Brief This file contains the implementation of - * the basic NodeApp_Configurator interface, the one - * that does nothing more - * - * @author Nanbor Wang <nanbor@exothermic.txcorp.com> - *========================================================*/ - -#ifndef NODEAPP_CONFIGURATOR_H -#define NODEAPP_CONFIGURATOR_H -#include /**/ "ace/pre.h" - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ciao/Deployment_CoreC.h" - -namespace CIAO -{ - /** - * - * @class NodeApp_Configurator - * - * @brief This class defines and implements the default - * NodeApp_Configurator base class that's needed for configuring the - * NodeApplication process. - **/ - class NodeApp_Configurator - { - public: - /// Default constructor. - NodeApp_Configurator (CORBA::ORB_ptr o); - - /// Default destructor. - virtual ~NodeApp_Configurator (void) = 0 {} - - /** - * @brief "initialize" is called after NodeApplication get a hold - * at this object. - */ - virtual int initialize (void) = 0; - - /** - * @brief "init_resource_manager" is called by NodeApplication when - * it receives an "install" commands. - */ - virtual int - init_resource_manager (const ::Deployment::Properties &properties) = 0; - - /** - * @brief get a policyset by its name. - */ - virtual CORBA::PolicyList * - find_container_policies (const ::Deployment::Properties &properties) = 0; - - protected: - CORBA::ORB_var orb_; - }; -} - -#include /**/ "ace/post.h" -#endif /* NODEAPP_CONFIGURATOR_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.cpp b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.cpp index 5e822928fcd..d50765f78d5 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.cpp +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.cpp @@ -1,7 +1,59 @@ // $Id$ -#include "NodeApplication_Core.h" +#include "NodeApplication_Impl.h" +#include "NodeApplication_CallBackC.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" +#include "ace/OS_NS_errno.h" + +const char *ior_file_name = 0; +const char *callback_ior = 0; +int use_callback = 1; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "nk:o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'n': + use_callback = 0; + break; + + + case 'o': // get the file name to write to + ior_file_name = get_opts.opt_arg (); + break; + + case 'k': // get the activator callback IOR + callback_ior = get_opts.opt_arg (); + break; + + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-n Do not use Callback (for testing)\n" + "-o <ior_output_file>\n" + "-k <NodeApplicationManager_callback_ior>\n" + "\n", + argv [0]), + -1); + } + + if (use_callback && callback_ior == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Callback IOR to NodeApplicationManager is required.\n"), + -1); + + return 0; +} int main (int argc, char *argv[]) @@ -10,8 +62,6 @@ main (int argc, char *argv[]) ACE_TRY { - ACE_DEBUG ((LM_DEBUG, "*** Starting NodeApplication\n")); - // Initialize orb CORBA::ORB_var orb = CORBA::ORB_init (argc, @@ -22,16 +72,122 @@ main (int argc, char *argv[]) CIAO::Server_init (orb.in ()); - CIAO::NodeApplication_Options nodeapp_options; - - if (nodeapp_options.parse_args (argc, argv) != 0) + if (parse_args (argc, argv) != 0) return -1; - CIAO::NodeApplication_Core nodeapp_core (orb.in (), - nodeapp_options); + // Get reference to Root POA. + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var poa + = PortableServer::POA::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Activate POA manager + PortableServer::POAManager_var mgr + = poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + mgr->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + CIAO::NodeApplication_Impl *nodeapp_servant; + + ACE_NEW_RETURN (nodeapp_servant, + CIAO::NodeApplication_Impl (orb.in (), + poa.in ()), + -1); + + PortableServer::ServantBase_var safe_servant (nodeapp_servant); + + // CONFIGURING NodeApplication + PortableServer::ObjectId_var nodeapp_oid + = poa->activate_object (nodeapp_servant + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + obj = poa->id_to_reference (nodeapp_oid.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Deployment::NodeApplication_var nodeapp_obj = + Deployment::NodeApplication::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil (nodeapp_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to activate NodeApplication object\n"), + -1); + + + Deployment::NodeApplicationManager_var nodeapp_man; + Deployment::Properties_var prop = new Deployment::Properties; + + if (use_callback) + { + obj = orb->string_to_object (callback_ior + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CIAO::NodeApplication_Callback_var nam_callback + = CIAO::NodeApplication_Callback::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Deployment::Properties_out properties_out (prop.out ()); + + nodeapp_man + = nam_callback->register_node_application (nodeapp_obj.in (), + properties_out + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + /** @@ We need to call NodeApplication servant's init method. + * But it's not sure to me where exactly we can get the + * Properties needed by the init method at this moment. There are two + * ways to set the property of the NodeApplication: + * 1. call init remotely from NodeApplicationManager + * 2. call init locally on the servant of NodeApplication. + */ + bool result = nodeapp_servant->init (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (result) + { + ACE_DEBUG ((LM_DEBUG, "NodeApplication Failed on creating and\ + initializing the session container!")); + return 1; + } + + CORBA::String_var str = orb->object_to_string (nodeapp_obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CIAO::Utility::write_IOR (ior_file_name, + str.in ()); + + // End Deployment part + if (CIAO::debug_level () > 10) + { + ACE_DEBUG ((LM_INFO, "NodeApplication IOR: %s\n", str.in ())); + + ACE_DEBUG ((LM_DEBUG, + "Running NodeApplication...\n")); + } // Run the main event loop for the ORB. - nodeapp_core.run_orb (); + orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_CATCHANY diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.mpc b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.mpc index a9da0e5b7a2..e258358d5eb 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.mpc +++ b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication.mpc @@ -8,10 +8,6 @@ project(NodeApplication): ciao_component_dnc { } Source_Files { - NodeApp_Configurator.cpp - Container_Impl.cpp - NodeApplication_Core.cpp - NodeApplication_Impl.cpp NodeApplication.cpp } } diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.cpp b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.cpp deleted file mode 100644 index 305e68e85aa..00000000000 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.cpp +++ /dev/null @@ -1,349 +0,0 @@ -// $Id$ - -#include "ciao/NodeApplication_CallBackC.h" -#include "ace/Sched_Params.h" -#include "NodeApplication_Impl.h" -#include "NodeApplication_Core.h" -#include "ace/Null_Mutex.h" -#include "ciao/CIAO_common.h" -#include "ace/Get_Opt.h" - -#if !defined (__ACE_INLINE__) -# include "NodeApplication_Core.inl" -#endif /* __ACE_INLINE__ */ - -const char * -sched_policy_name (int sched_policy) -{ - const char *name = 0; - - switch (sched_policy) - { - case ACE_SCHED_OTHER: - name = "SCHED_OTHER"; - break; - case ACE_SCHED_RR: - name = "SCHED_RR"; - break; - case ACE_SCHED_FIFO: - name = "SCHED_FIFO"; - break; - } - - return name; -} - - -/// The following check is taken from $(TAO_ROOT)/tests/RTCORBA/ -int -check_supported_priorities (CORBA::ORB_ptr orb) -{ - int sched_policy = - orb->orb_core ()->orb_params ()->ace_sched_policy (); - - // Check that we have sufficient priority range to run, - // i.e., more than 1 priority level. - int max_priority = - ACE_Sched_Params::priority_max (sched_policy); - int min_priority = - ACE_Sched_Params::priority_min (sched_policy); - - if (max_priority == min_priority) - { - ACE_DEBUG ((LM_DEBUG, - "Not enough priority levels with the %s scheduling policy\n" - "on this platform to run, terminating program....\n" - "Check svc.conf options\n", - sched_policy_name (sched_policy))); - - return -1; - } - return 0; -} - -CIAO::NoOp_Configurator::~NoOp_Configurator (void) -{ - // Not much to do. -} - -int -CIAO::NoOp_Configurator::initialize (void) -{ - // Do nothing to initialize the NodeApplication process. - return 0; -} - -int -CIAO::NoOp_Configurator::init_resource_manager -(const ::Deployment::Properties & /*properties*/) -{ - // @@ Currently do thing. We should go over the resource struct in - // the future and throw exceptions if there are - // un-recognizable/supported stuff in it. - return 0; -} - -CORBA::PolicyList * -CIAO::NoOp_Configurator::find_container_policies -(const ::Deployment::Properties & /*properties*/) -{ - // Not much to do. - - return 0; -} - -int -CIAO::NodeApplication_Options::parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "nrk:o:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'n': - this->use_callback_ = 0; - break; - - - case 'o': // get the file name to write to - this->ior_output_filename_ = get_opts.opt_arg (); - break; - - case 'k': // get the activator callback IOR - this->callback_ior_ = get_opts.opt_arg (); - break; - - case 'r': // Enable RT support - this->rt_support_ = 1; - break; - - case '?': // display help for use of the server. - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s\n" - "-n Do not use Callback (for testing)\n" - "-o <ior_output_file>\n" - "-k <NodeApplicationManager_callback_ior>\n" - "-r Request RT support\n" - "\n", - argv [0]), - -1); - } - - if (this->use_callback_ && this->callback_ior_.length() == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Callback IOR to NodeApplicationManager is required.\n"), - -1); - - return 0; -} - -int -CIAO::NodeApplication_Core::svc () -{ - ACE_TRY_NEW_ENV - { - CORBA::Object_var object = - this->orb_->resolve_initial_references ("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // ... - CIAO::NodeApplication_Impl *nodeapp_servant; - - ACE_NEW_RETURN (nodeapp_servant, - CIAO::NodeApplication_Impl (this->orb_.in (), - root_poa.in (), - *this->configurator_.get ()), - -1); - - PortableServer::ServantBase_var safe_servant (nodeapp_servant); - - // Configuring NodeApplication. - PortableServer::ObjectId_var nodeapp_oid - = root_poa->activate_object (nodeapp_servant - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - object = root_poa->id_to_reference (nodeapp_oid.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Deployment::NodeApplication_var nodeapp_obj = - Deployment::NodeApplication::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (CORBA::is_nil (nodeapp_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to activate NodeApplication object\n"), - -1); - - /** @@ We need to call NodeApplication servant's init method. - * But it's not sure to me where exactly we can get the - * Properties needed by the init method at this moment. There are two - * ways to set the property of the NodeApplication: - * 1. call init remotely from NodeApplicationManager - * 2. call init locally on the servant of NodeApplication. - */ - bool retval = nodeapp_servant->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (retval) - { - ACE_DEBUG ((LM_DEBUG, "NodeApplication Failed on creating and\ - initializing the session container!")); - return 1; - } - - CORBA::String_var str = this->orb_->object_to_string (nodeapp_obj.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (this->options_.ior_output_filename_.length () != 0) - CIAO::Utility::write_IOR (this->options_.ior_output_filename_.c_str (), - str.in ()); - - // End Deployment part - if (CIAO::debug_level () > 10) - { - ACE_DEBUG ((LM_INFO, "NodeApplication IOR: %s\n", str.in ())); - - } - - Deployment::NodeApplicationManager_var nodeapp_man; - Deployment::Properties_var prop = new Deployment::Properties; - - if (this->options_.use_callback_) - { - object = this->orb_->string_to_object (this->options_.callback_ior_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CIAO::NodeApplication_Callback_var nam_callback - = CIAO::NodeApplication_Callback::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Deployment::Properties_out properties_out (prop.out ()); - - nodeapp_man - = nam_callback->register_node_application (nodeapp_obj.in (), - properties_out - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_DEBUG ((LM_DEBUG, - "Running NodeApplication...\n")); - - this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->orb_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught"); - return -1; - } - ACE_ENDTRY; - - ACE_DEBUG ((LM_DEBUG, - "Exiting NodeApplication...\n")); - return 0; -} - -int -CIAO::NodeApplication_Core::run_orb () -{ - // check supported priority before running RT - if (this->options_.rt_support_ != 0 && - check_supported_priorities (this->orb_.in ()) != 0) - { - ACE_DEBUG ((LM_ERROR, "ERROR: DISABLE RT SUPPORT\n")); - this->options_.rt_support_ = 0; - } - - if (this->configurator_factory () != 0) - ACE_ERROR_RETURN ((LM_ERROR, "ERROR: Unable to acquire and initialize the NodeApplication configurator.\n"), -1); - - if (this->options_.rt_support_ != 0) // RT support reuqested - { - - - // spawn a thread - // Task activation flags. - long flags = - THR_NEW_LWP | - THR_JOINABLE | - this->orb_->orb_core ()->orb_params ()->thread_creation_flags (); - - // Activate task. - int result = - this->activate (flags); - if (result == -1) - { - if (errno == EPERM) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Cannot create thread with scheduling policy %s\n" - "because the user does not have the appropriate privileges, terminating program....\n" - "Check svc.conf options and/or run as root\n", - sched_policy_name (this->orb_->orb_core ()->orb_params ()->ace_sched_policy ())), - 2); - } - else - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "*** Running NodeApplication in RT mode\n")); - - // Wait for task to exit. - result = - this->wait (); - ACE_ASSERT (result != -1); - - ACE_DEBUG ((LM_INFO, "*** Ending NodeApplication\n")); - return 0; - - } - else - return this->svc (); -} - -int -CIAO::NodeApplication_Core::configurator_factory (void) -{ - CIAO::NodeApp_Configurator* ptr = 0; - - if (this->options_.rt_support_) - { - // Manufacture a RTNA_configurator - } - else - ACE_NEW_RETURN (ptr, - CIAO::NoOp_Configurator (this->orb_.in ()), - -1); - - this->configurator_.reset (ptr); - - return this->configurator_->initialize (); -} diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.h b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.h deleted file mode 100644 index 3113b7759f7..00000000000 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.h +++ /dev/null @@ -1,142 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file NodeApplication_Core.h - * - * $Id$ - * - * An ACE_Task subclass that manages the NodeApplication runtime. We - * can run this class as a separate thread, as in the case of RT - * support, or as a event driven ORB. - * - * @author Nanbor Wang <nanbor@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef CIAO_NODEAPPLICATION_CORE_H -#define CIAO_NODEAPPLICATION_CORE_H -#include /**/ "ace/pre.h" - -#include "tao/ORB_Core.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/ORB.h" -#include "ace/Task.h" -#include "ace/SString.h" -#include "ace/Auto_Ptr.h" -#include "NodeApp_Configurator.h" - -namespace CIAO -{ - class NodeApplication_Core; - - /** - * @class NodeApplication_Options - * - * @brief An class for managing and extracting command line options - * for NodeApplication. - */ - class NodeApplication_Options - { - public: - // default ctor. - NodeApplication_Options () : use_callback_ (1), rt_support_ (0) {} - - // extracting commandline arguments - int parse_args (int argc, char *argv[]); - - friend class NodeApplication_Core; - - private: - // The name of the file to write stringified IOR to. - ACE_CString ior_output_filename_; - - // Stringified IOR of a CIAO's callback object. - ACE_CString callback_ior_; - - // CIAO ComponentServer uses the callback object to pass it's - // own object reference back to NodeApplicationManager. - int use_callback_; - - // If we need to support RT-CORBA. Currently, this is - // mandatory, but we can probably allow some sort of - // "best-effort" RT support. I.e., if the platform/environment - // doesn't support RT, then we will still deploy the NodeApp but - // ignore the RT spec. Perhaps something in the future. - int rt_support_; - }; - - /** - * @class NoOP_Configurator - * - * @brief The NoOp_Configurator doesn't do anything. - */ - class NoOp_Configurator : public NodeApp_Configurator - { - public: - /// Default constructor. - NoOp_Configurator (CORBA::ORB_ptr o); - - /// Default destructor. - virtual ~NoOp_Configurator (void); - - /** - * @brief "initialize" is called after NodeApplication get a hold - * at this object. - */ - virtual int initialize (void); - - /** - * @brief "init_resource_manager" is called by NodeApplication when - * it receives an "install" commands. - */ - virtual int - init_resource_manager (const ::Deployment::Properties &properties); - - /** - * @brief get a policyset by its name. - */ - virtual CORBA::PolicyList * - find_container_policies (const ::Deployment::Properties &properties); - }; - - /** - * @class NodeApplication_Core - * - * @brief An ACE_Task subclass that allow the ORB thread to be run - * as separate thread when RT behaviors are needed. - */ - class NodeApplication_Core - : public virtual ACE_Task_Base - { - public: - NodeApplication_Core (CORBA::ORB_ptr orb, - NodeApplication_Options &opts); - - virtual int svc (void); - - int run_orb (void); - - protected: - int configurator_factory (void); - - CORBA::ORB_var orb_; - - NodeApplication_Options &options_; - - auto_ptr<NodeApp_Configurator> configurator_; - }; - -} - -#if defined (__ACE_INLINE__) -# include "NodeApplication_Core.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif /* CIAO_NODEAPPLICAITON_CORE_H */ diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.inl b/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.inl deleted file mode 100644 index 92bb1a04b62..00000000000 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Core.inl +++ /dev/null @@ -1,17 +0,0 @@ -// -*- C++ -*- $Id$ - -ACE_INLINE -CIAO::NoOp_Configurator::NoOp_Configurator (CORBA::ORB_ptr o) - : NodeApp_Configurator (o) -{ -} - -ACE_INLINE -CIAO::NodeApplication_Core::NodeApplication_Core (CORBA::ORB_ptr o, - CIAO::NodeApplication_Options &opts) - : orb_ (CORBA::ORB::_duplicate (o)), - options_ (opts), - configurator_ (0) -{ -} - diff --git a/TAO/CIAO/NEWS b/TAO/CIAO/NEWS index 464e20df2df..3c3fc72a79e 100644 --- a/TAO/CIAO/NEWS +++ b/TAO/CIAO/NEWS @@ -36,7 +36,6 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known) decisions, without handcrafting the mechanisms needed to (1) configure the algorithms and (2) deploy the decisions made by the algorithms. -. Implement support for more complex type initialization with XML. PLANNED MAJOR CHANGES FOR THE NEXT RELEASE ========================================== @@ -60,14 +59,6 @@ PLANNED MAJOR CHANGES FOR THE NEXT RELEASE USER VISIBLE CHANGES BETWEEN CIAO-0.4.7 and CIAO-0.4.8 ====================================================== -. The XSC based config handlers have been heavily optimized, resulting - in greatly reduced parsing overhead for large deployments. - -. The DAnCE toolchain now supports initializing attributes which have - enumerated types. Support for other complex types is planned for the - future. Please see examples/Hello/descriptors/ - flattened_deploymentplan_without_ns.cdp for an example of how to - populate enumerated attributes. . Integrated Real-time QoS support to CIAO based on OMG's new Deployment and Configuration (D&C) specification. Such effort @@ -80,7 +71,7 @@ USER VISIBLE CHANGES BETWEEN CIAO-0.4.7 and CIAO-0.4.8 . Added functionality in XML parsing code to resolve schema in $CIAO_ROOT/docs/schema instead of the local directory only. All DeploymentPlans should use Deployment.xsd instead of - Modified_Deployment.xsd, which has been removed. + Modified_Deployment.xsd. . Fixed bug in CIDL code generation for some types of component and home attributes. diff --git a/TAO/CIAO/ciao/CCM_Core.mpc b/TAO/CIAO/ciao/CCM_Core.mpc index 80b2435024d..f338fba8256 100644 --- a/TAO/CIAO/ciao/CCM_Core.mpc +++ b/TAO/CIAO/ciao/CCM_Core.mpc @@ -155,7 +155,9 @@ project (CIAO_DnC_Server) : orbsvcslib, portableserver, valuetype, naming, ifr_c Source_Files { Container_Base.cpp + Container_Impl.cpp Swapping_Container.cpp + NodeApplication_Impl.cpp Context_Impl_Base.cpp Home_Servant_Impl_Base.cpp Servant_Impl_Base.cpp diff --git a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.cpp b/TAO/CIAO/ciao/Container_Impl.cpp index 194c35c6f6c..ac5fc047693 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.cpp +++ b/TAO/CIAO/ciao/Container_Impl.cpp @@ -1,6 +1,6 @@ // $Id$ #include "Container_Impl.h" -#include "ciao/CCM_ComponentC.h" // for calling StandardConfigurator interface +#include "CCM_ComponentC.h" // for calling StandardConfigurator interface #include "orbsvcs/CosNamingC.h" diff --git a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.h b/TAO/CIAO/ciao/Container_Impl.h index be17b77bf75..428b47c67f2 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.h +++ b/TAO/CIAO/ciao/Container_Impl.h @@ -25,12 +25,12 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ciao/Deployment_CoreS.h" -#include "ciao/Container_Base.h" -//#include "ciao/Swapping_Container.h" +#include "Deployment_CoreS.h" +#include "Container_Base.h" +#include "Swapping_Container.h" #include "ace/SString.h" -#include "ciao/Server_init.h" // write_IOR function -#include "ciao/CIAO_common.h" // CIAO::debug_level +#include "Server_init.h" // write_IOR function +#include "CIAO_common.h" // CIAO::debug_level namespace CIAO { @@ -45,7 +45,7 @@ namespace CIAO * interface and is used to manage the lifecycle of the installed * components and homes. */ - class Container_Impl + class CIAO_SERVER_Export Container_Impl : public virtual POA_Deployment::Container { public: diff --git a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.inl b/TAO/CIAO/ciao/Container_Impl.inl index 40406e5582e..40406e5582e 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/Container_Impl.inl +++ b/TAO/CIAO/ciao/Container_Impl.inl diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/TAO/CIAO/ciao/NodeApplication_Impl.cpp index 403a6d4afc1..cfc18baaf91 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp +++ b/TAO/CIAO/ciao/NodeApplication_Impl.cpp @@ -297,9 +297,6 @@ CIAO::NodeApplication_Impl::install ( Deployment::ComponentInfos_var retv; ACE_TRY { - // Extract ORB resource def here. - // this->configurator_.init_resource_manager (xxx); - const ::Deployment::ContainerImplementationInfos container_infos = node_impl_info.impl_infos; diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h b/TAO/CIAO/ciao/NodeApplication_Impl.h index 334d878f9ae..b16e8931ccb 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h +++ b/TAO/CIAO/ciao/NodeApplication_Impl.h @@ -20,16 +20,16 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ciao/Deployment_CoreS.h" -#include "ciao/Server_init.h" -#include "ciao/CIAO_common.h" -#include "ciao/Object_Set_T.h" +#include "Container_Base.h" +#include "Deployment_CoreS.h" +#include "Server_init.h" +#include "CIAO_common.h" +#include "Object_Set_T.h" #include "tao/ORB.h" #include "ace/Synch.h" #include "ace/Synch_Traits.h" #include "ace/SString.h" #include "ace/Hash_Map_Manager_T.h" -#include "NodeApp_Configurator.h" using CIAO::Utility::write_IOR; @@ -57,14 +57,13 @@ namespace CIAO // @@ Gan, as we discussed before can you please wrap this // implementation in a namespace Node_Application or whatever to // signify that it belongs to another software piece of CIAO? - class NodeApplication_Impl + class CIAO_SERVER_Export NodeApplication_Impl : public virtual POA_Deployment::NodeApplication { public: /// Default constructor. NodeApplication_Impl (CORBA::ORB_ptr o, - PortableServer::POA_ptr p, - NodeApp_Configurator &c); + PortableServer::POA_ptr p); /// Default destructor. virtual ~NodeApplication_Impl (void); @@ -220,9 +219,6 @@ namespace CIAO //document it? PortableServer::POA_var poa_; - // Configurator for allocating NodeApp resources and policies - NodeApp_Configurator &configurator_; - /// Cached properties Deployment::Properties properties_; diff --git a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.inl b/TAO/CIAO/ciao/NodeApplication_Impl.inl index bf504f337fb..d0a30e2b401 100644 --- a/TAO/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.inl +++ b/TAO/CIAO/ciao/NodeApplication_Impl.inl @@ -4,12 +4,10 @@ ACE_INLINE CIAO::NodeApplication_Impl:: NodeApplication_Impl (CORBA::ORB_ptr o, - PortableServer::POA_ptr p, - NodeApp_Configurator &c) + PortableServer::POA_ptr p) : orb_ (CORBA::ORB::_duplicate (o)), - poa_ (PortableServer::POA::_duplicate (p)), - configurator_ (c) + poa_ (PortableServer::POA::_duplicate (p)) { } diff --git a/TAO/ChangeLog b/TAO/ChangeLog index c9a8dfea711..8aa7ab4702f 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,622 +1,3 @@ -Wed Oct 19 14:09:44 2005 Bala Natarajan <bala_natarajan at symantec dot com> - - * tao/Messaging/AMH_Response_Handler.cpp: - - Release the lock in the destructor before calling - _tao_rh_send_exception (). The said method is well - protected. Calling this method with the lock held could create a - deadlock. Thanks to <im-scooter at yandex.ru> for reporting the - problem. This fixes [BUGID 2269]. - -Wed Oct 19 11:30:23 MST 2005 Yan Dai <dai_y@ociweb.com> - - * tao/CSD_Framework/CSD_Strategy_Base.h: - - Removed un-necessary ";" from the POAManager forward declaration. - - * tao/CSD_Framework/CSD_Strategy_Base.cpp: - * tao/PortableServer/Root_POA.cpp: - - Removed the argument name from the csd hook interfaces instead - of using ACE_UNUSED_ARG. - - * docs/libraries.html: - - Added CSD_Framework and CSD_ThreadPool library descriptions. - - * examples/CSD_Strategy/ThreadPool/Foo_i.h: - * examples/CSD_Strategy/ThreadPool2/Foo_i.h: - * examples/CSD_Strategy/ThreadPool3/Foo_i.h: - * examples/CSD_Strategy/ThreadPool4/Callback_i.h: - * examples/CSD_Strategy/ThreadPool4/Foo_i.h: - * examples/CSD_Strategy/ThreadPool5/Callback_i.h: - * examples/CSD_Strategy/ThreadPool5/Foo_i.h: - * performance-tests/CSD_Strategy/TestServant/Foo_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h: - - Replaced deprecated RefCountServantBase with ServantBase. - -Wed Oct 19 10:01:03 2005 Ossama Othman <ossama@dre.vanderbilt.edu> - - * tao/Valuetype/Value_VarOut_T.cpp (operator=): - - Implement assignment operators in terms of their constructor - counterparts using the canonical copy and (non-throwing) swap - technique. Provides strong exception safety guarantee, obviates - need for self-assignment check and reduces code duplication - between constructors and assignment operators. This change also - reverts "Tue Jun 21 13:38:23 2005 Gary Maxey <gary.maxey@...>", - and fixes a memory leak reported by Mickael P. Golovin <migel at - garant dot ru>. - -Wed Oct 19 12:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Messaging/ExceptionHolder_i.cpp: - Added todo that code could be simplified when missing valuetype - constructor is generated - -Wed Oct 19 10:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be_include/be_global.h: - Added define of TAO_HAS_DEPRECATED_EXCEPTION_HOLDER. This way - I can the new AMI support to the IDL compiler in the repo - and build it on multiple boxes by removing this define by hand. - At the moment the new AMI support is fully ready I will remove - this define and then it is up to the user to set it. - - * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp: - * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp: - * TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp: - * TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_cs.cpp: - * TAO_IDL/be/be_codegen.cpp: - * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: - Added support for the new AMI mapping, is enabled when - TAO_HAS_DEPRECATED_EXCEPTION_HOLDER is not defined, so by - default it is disabled at this moment - -Wed Oct 19 09:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> - - * tao/Messaging/ExceptionHolder_i.{h,cpp}: - Added new Messaging::ExceptionHolder implementation, will be used - for the new AMI mapping - - * tao/Makefile.am: - Added new files above - -Wed Oct 19 08:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> - - * TAO_IDL/be_include/be_global.h: - * TAO_IDL/be/be_global.cpp: - Added member to store the new Messaging::ExceptionHolder - for the latest AMI mapping - -Wed Oct 19 00:35:02 2005 J.T. Conklin <jtc@acorntoolworks.com> - - * configure.ac: - - Add default AM_CONDITIONAL for BUILD_WFMO. - -Wed Oct 19 07:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> - - * orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp: - Fixed MinGW warning - -Wed Oct 19 00:11:34 2005 J.T. Conklin <jtc@acorntoolworks.com> - - * examples/POA/Explicit_Activation/Alt_Resources/Makefile.am: - - Regenerate. - - * examples/POA/Explicit_Activation/Alt_Resources/Alt_Resource.mpc: - - Changed to inherit from wfmo instead of using a verbatim section - to disable building on systems without the ACE_WFMO_Reactor. - -Tue Oct 18 23:43:02 2005 J.T. Conklin <jtc@acorntoolworks.com> - - * tao/Makefile.am - - Regenerate. - - * tao/CSD_Framework.mpc: - * tao/CSD_ThreadPool.mpc: - - Add Pkconfig_Files section for new pkg-config templates. - - * tao/CSD_Framework/TAO_CSD_Framework.pc.in: - - New file, pkg-config *.pc template for TAO_CSD_Framework - library. - - * tao/CSD_ThreadPool/TAO_CSD_ThreadPool.pc.in: - - New file, pkg-config *.pc template for TAO_CSD_ThreadPool - library. - -Tue Oct 18 20:56:24 2005 J.T. Conklin <jtc@acorntoolworks.com> - - * tao/CSD_ThreadPool.mpc: - - Changed to inherit from core.mpb base project. - -Tue Oct 18 18:35:26 2005 J.T. Conklin <jtc@acorntoolworks.com> - - * tao/Makefile.am: - - Regenerate due to CSD. - -Tue Oct 18 18:33:04 2005 J.T. Conklin <jtc@acorntoolworks.com> - - * examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am: - * examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am: - * examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am: - - Regenerate due to change in Kokyu_dsrt_schedulers.mpb. - -Tue Oct 18 17:24:26 MST 2005 Yan Dai <dai_y@ociweb.com> - - Merged in the CSD (Custom Servant Dispatching) feature from OCI. - - The main changes to existing code are: - - - Four hooks are added to TAO_Root_POA to notify the CSD when poa - is activated/deactivated and servant is activated/deactivated. - Some areas of the code were instrumented to call these hooks to - notify the CSD Strategy object of POA activation and deactivation - "events". Likewise, code was added to notify the CSD Strategy object - of servant activation and deactivation "events". - - A virtual method do_dispatch() is added to the TAO_Object_Adapter so - the CSD object adpater can override the default implementation to - dispatch the requests to the CSD strategy. - - The remote requests and the collocated oneway requests are cloned when - they are dispatched to the CSD strategy. To support the TAO_ServerRequest - clone in the CSD library, the friendship is added to the TAO_ServerRequest - class and it's data member classes such as TAO_Service_Context class, - TAO_Operation_Details class and TAO_Tagged_Profile class. - - * tao/PortableServer/Root_POA.cpp: - * tao/PortableServer/Root_POA.h: - - Added four hooks. - - * tao/PortableServer/Object_Adapter.cpp: - * tao/PortableServer/Object_Adapter.h: - * tao/PortableServer/POAManager.cpp: - * tao/PortableServer/ServantRetentionStrategyRetain.cpp: - - Instrumented to call the hooks. - - * tao/operation_details.h: - * tao/Service_Context.h: - * tao/Tagged_Profile.h: - - Added friendship with CSD_FW_Server_Request_Wrapper to support - the TAO_ServerRequest clone in CSD library. - - * tao/TAO_Server_Request.h: - - - Changed the operation_details_ to be pointer to const - TAO_Operation_Details object instead of const pointer to const - TAO_Operation_Details object. This change is made to accommodate - the change of TAO_ServerRequest clone in the CSD library. - - Added friendship with CSD_FW_Server_Request_Wrapper to support - the TAO_ServerRequest clone in CSD library. - - * tao/PortableServer/get_arg.h: - - Made the get_in_arg template function check whether the - detail argument is nil. If the detail is not nil and the - argument list in detail is nil(collocated oneway case) then it - will demarshall the input CDR stream and get arguments. This - change is made to accommodate the changes in TAO_Operation_Details - clone that writes the argument list to the input CDR of the - TAO_ServerRequest object. - - * tao/Intrusive_Ref_Count_Base_T.cpp: - * tao/Intrusive_Ref_Count_Base_T.h: - * tao/Intrusive_Ref_Count_Base_T.inl: - * tao/Intrusive_Ref_Count_Handle_T.cpp: - * tao/Intrusive_Ref_Count_Handle_T.h: - * tao/Intrusive_Ref_Count_Handle_T.inl: - - These are two new classes that provide infrastructure-level support - for classes that need an "intrusive" reference counting mechanism. - - * tao/CSD_Framework.mpc: - * tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp: - * tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h: - * tao/CSD_Framework/CSD_Framework.pidl: - * tao/CSD_Framework/CSD_Framework_Loader.cpp: - * tao/CSD_Framework/CSD_Framework_Loader.h: - * tao/CSD_Framework/CSD_FrameworkA.cpp: - * tao/CSD_Framework/CSD_FrameworkA.h: - * tao/CSD_Framework/CSD_FrameworkC.cpp: - * tao/CSD_Framework/CSD_FrameworkC.h: - * tao/CSD_Framework/CSD_FrameworkC.inl: - * tao/CSD_Framework/CSD_FW_Export.h: - * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp: - * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h: - * tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.inl: - * tao/CSD_Framework/CSD_Object_Adapter.cpp: - * tao/CSD_Framework/CSD_Object_Adapter.h: - * tao/CSD_Framework/CSD_Object_Adapter_Factory.cpp: - * tao/CSD_Framework/CSD_Object_Adapter_Factory.h: - * tao/CSD_Framework/CSD_ORBInitializer.cpp: - * tao/CSD_Framework/CSD_ORBInitializer.h: - * tao/CSD_Framework/CSD_POA.cpp: - * tao/CSD_Framework/CSD_POA.h: - * tao/CSD_Framework/CSD_POA.inl: - * tao/CSD_Framework/CSD_Strategy_Base.cpp: - * tao/CSD_Framework/CSD_Strategy_Base.h: - * tao/CSD_Framework/CSD_Strategy_Base.inl: - * tao/CSD_Framework/CSD_Strategy_Proxy.cpp: - * tao/CSD_Framework/CSD_Strategy_Proxy.h: - * tao/CSD_Framework/CSD_Strategy_Proxy.inl: - * tao/CSD_Framework/CSD_Strategy_Repository.cpp: - * tao/CSD_Framework/CSD_Strategy_Repository.h: - * tao/CSD_Framework/diffs/CSD_Framework.diff: - - All of the files listed above are brand new and are used to build - the new CSD Framework library. This framework implements the base - classes for the concrete strategy implementation and implements - the service objects for CSD strategy static and dynamic loading - via the service configuration file. - - * tao/CSD_ThreadPool.mpc: - * tao/CSD_ThreadPool/CSD_ThreadPool.cpp: - * tao/CSD_ThreadPool/CSD_ThreadPool.h: - * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp: - * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.h: - * tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Corba_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Corba_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Custom_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Custom_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Custom_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp: - * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h: - * tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl: - * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp: - * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h: - * tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl: - * tao/CSD_ThreadPool/CSD_TP_Export.h: - * tao/CSD_ThreadPool/CSD_TP_Queue.cpp: - * tao/CSD_ThreadPool/CSD_TP_Queue.h: - * tao/CSD_ThreadPool/CSD_TP_Queue.inl: - * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp: - * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.h: - * tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.inl: - * tao/CSD_ThreadPool/CSD_TP_Remote_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Remote_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Remote_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Request.cpp: - * tao/CSD_ThreadPool/CSD_TP_Request.h: - * tao/CSD_ThreadPool/CSD_TP_Request.inl: - * tao/CSD_ThreadPool/CSD_TP_Servant_State.cpp: - * tao/CSD_ThreadPool/CSD_TP_Servant_State.h: - * tao/CSD_ThreadPool/CSD_TP_Servant_State.inl: - * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.cpp: - * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.h: - * tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.inl: - * tao/CSD_ThreadPool/CSD_TP_Strategy.cpp: - * tao/CSD_ThreadPool/CSD_TP_Strategy.h: - * tao/CSD_ThreadPool/CSD_TP_Strategy.inl: - * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp: - * tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h: - * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.cpp: - * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.h: - * tao/CSD_ThreadPool/CSD_TP_Synch_Helper.inl: - * tao/CSD_ThreadPool/CSD_TP_Task.cpp: - * tao/CSD_ThreadPool/CSD_TP_Task.h: - * tao/CSD_ThreadPool/CSD_TP_Task.inl: - - All of the files listed above are brand new and are used to build - the new CSD ThreadPool library. Collectively, these classes - represent the reference-implementation for the CSD Strategy feature. - - * examples/CSD_Strategy/README: - * examples/CSD_Strategy/ThreadPool/client_main.cpp: - * examples/CSD_Strategy/ThreadPool/ClientApp.cpp: - * examples/CSD_Strategy/ThreadPool/ClientApp.h: - * examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc: - * examples/CSD_Strategy/ThreadPool/Foo.idl: - * examples/CSD_Strategy/ThreadPool/Foo_i.cpp: - * examples/CSD_Strategy/ThreadPool/Foo_i.h: - * examples/CSD_Strategy/ThreadPool/OrbShutdownTask.cpp: - * examples/CSD_Strategy/ThreadPool/OrbShutdownTask.h: - * examples/CSD_Strategy/ThreadPool/README: - * examples/CSD_Strategy/ThreadPool/run_test.pl: - * examples/CSD_Strategy/ThreadPool/server_main.cpp: - * examples/CSD_Strategy/ThreadPool/ServerApp.cpp: - * examples/CSD_Strategy/ThreadPool/ServerApp.h: - * examples/CSD_Strategy/ThreadPool2/client_main.cpp: - * examples/CSD_Strategy/ThreadPool2/ClientApp.cpp: - * examples/CSD_Strategy/ThreadPool2/ClientApp.h: - * examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc: - * examples/CSD_Strategy/ThreadPool2/Foo.idl: - * examples/CSD_Strategy/ThreadPool2/Foo_i.cpp: - * examples/CSD_Strategy/ThreadPool2/Foo_i.h: - * examples/CSD_Strategy/ThreadPool2/FooServantList.cpp: - * examples/CSD_Strategy/ThreadPool2/FooServantList.h: - * examples/CSD_Strategy/ThreadPool2/OrbShutdownTask.cpp: - * examples/CSD_Strategy/ThreadPool2/OrbShutdownTask.h: - * examples/CSD_Strategy/ThreadPool2/README: - * examples/CSD_Strategy/ThreadPool2/run_test.pl: - * examples/CSD_Strategy/ThreadPool2/server_main.cpp: - * examples/CSD_Strategy/ThreadPool2/ServerApp.cpp: - * examples/CSD_Strategy/ThreadPool2/ServerApp.h: - * examples/CSD_Strategy/ThreadPool3/client_main.cpp: - * examples/CSD_Strategy/ThreadPool3/ClientApp.cpp: - * examples/CSD_Strategy/ThreadPool3/ClientApp.h: - * examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc: - * examples/CSD_Strategy/ThreadPool3/Foo.idl: - * examples/CSD_Strategy/ThreadPool3/Foo_i.cpp: - * examples/CSD_Strategy/ThreadPool3/Foo_i.h: - * examples/CSD_Strategy/ThreadPool3/OrbShutdownTask.cpp: - * examples/CSD_Strategy/ThreadPool3/OrbShutdownTask.h: - * examples/CSD_Strategy/ThreadPool3/OrbTask.cpp: - * examples/CSD_Strategy/ThreadPool3/OrbTask.h: - * examples/CSD_Strategy/ThreadPool3/README: - * examples/CSD_Strategy/ThreadPool3/run_test.pl: - * examples/CSD_Strategy/ThreadPool3/server_main.cpp: - * examples/CSD_Strategy/ThreadPool3/ServerApp.cpp: - * examples/CSD_Strategy/ThreadPool3/ServerApp.h: - * examples/CSD_Strategy/ThreadPool4/Callback.idl: - * examples/CSD_Strategy/ThreadPool4/Callback_i.cpp: - * examples/CSD_Strategy/ThreadPool4/Callback_i.h: - * examples/CSD_Strategy/ThreadPool4/ClientTask.cpp: - * examples/CSD_Strategy/ThreadPool4/ClientTask.h: - * examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc: - * examples/CSD_Strategy/ThreadPool4/Foo.idl: - * examples/CSD_Strategy/ThreadPool4/Foo_i.cpp: - * examples/CSD_Strategy/ThreadPool4/Foo_i.h: - * examples/CSD_Strategy/ThreadPool4/OrbShutdownTask.cpp: - * examples/CSD_Strategy/ThreadPool4/OrbShutdownTask.h: - * examples/CSD_Strategy/ThreadPool4/README: - * examples/CSD_Strategy/ThreadPool4/run_test.pl: - * examples/CSD_Strategy/ThreadPool4/server_main.cpp: - * examples/CSD_Strategy/ThreadPool4/ServerApp.cpp: - * examples/CSD_Strategy/ThreadPool4/ServerApp.h: - * examples/CSD_Strategy/ThreadPool5/Callback.idl: - * examples/CSD_Strategy/ThreadPool5/Callback_i.cpp: - * examples/CSD_Strategy/ThreadPool5/Callback_i.h: - * examples/CSD_Strategy/ThreadPool5/client_main.cpp: - * examples/CSD_Strategy/ThreadPool5/ClientApp.cpp: - * examples/CSD_Strategy/ThreadPool5/ClientApp.h: - * examples/CSD_Strategy/ThreadPool5/ClientTask.cpp: - * examples/CSD_Strategy/ThreadPool5/ClientTask.h: - * examples/CSD_Strategy/ThreadPool5/CSD_Test_ThreadPool5.mpc: - * examples/CSD_Strategy/ThreadPool5/Foo.idl: - * examples/CSD_Strategy/ThreadPool5/Foo_i.cpp: - * examples/CSD_Strategy/ThreadPool5/Foo_i.h: - * examples/CSD_Strategy/ThreadPool5/FooServantList.cpp: - * examples/CSD_Strategy/ThreadPool5/FooServantList.h: - * examples/CSD_Strategy/ThreadPool5/OrbShutdownTask.cpp: - * examples/CSD_Strategy/ThreadPool5/OrbShutdownTask.h: - * examples/CSD_Strategy/ThreadPool5/OrbTask.cpp: - * examples/CSD_Strategy/ThreadPool5/OrbTask.h: - * examples/CSD_Strategy/ThreadPool5/README: - * examples/CSD_Strategy/ThreadPool5/run_test.pl: - * examples/CSD_Strategy/ThreadPool5/server_main.cpp: - * examples/CSD_Strategy/ThreadPool5/ServerApp.cpp: - * examples/CSD_Strategy/ThreadPool5/ServerApp.h: - * examples/CSD_Strategy/ThreadPool6/client_main.cpp: - * examples/CSD_Strategy/ThreadPool6/ClientApp.cpp: - * examples/CSD_Strategy/ThreadPool6/ClientApp.h: - * examples/CSD_Strategy/ThreadPool6/CSD_Test_ThreadPool6.mpc: - * examples/CSD_Strategy/ThreadPool6/Foo.idl: - * examples/CSD_Strategy/ThreadPool6/Foo_i.cpp: - * examples/CSD_Strategy/ThreadPool6/Foo_i.h: - * examples/CSD_Strategy/ThreadPool6/OrbShutdownTask.cpp: - * examples/CSD_Strategy/ThreadPool6/OrbShutdownTask.h: - * examples/CSD_Strategy/ThreadPool6/README: - * examples/CSD_Strategy/ThreadPool6/run_test.pl: - * examples/CSD_Strategy/ThreadPool6/server_main.cpp: - * examples/CSD_Strategy/ThreadPool6/ServerApp.cpp: - * examples/CSD_Strategy/ThreadPool6/ServerApp.h: - * performance-tests/CSD_Strategy/TestApps/client_main.cpp: - * performance-tests/CSD_Strategy/TestApps/ClientApp.cpp: - * performance-tests/CSD_Strategy/TestApps/ClientApp.h: - * performance-tests/CSD_Strategy/TestApps/csd_pt_testapps.mpc: - * performance-tests/CSD_Strategy/TestApps/run_test.pl: - * performance-tests/CSD_Strategy/TestApps/server_main.cpp: - * performance-tests/CSD_Strategy/TestApps/ServerApp.cpp: - * performance-tests/CSD_Strategy/TestApps/ServerApp.h: - * performance-tests/CSD_Strategy/TestApps/README: - * performance-tests/CSD_Strategy/TestInf/AppHelper.cpp: - * performance-tests/CSD_Strategy/TestInf/AppHelper.h: - * performance-tests/CSD_Strategy/TestInf/AppShutdown.cpp: - * performance-tests/CSD_Strategy/TestInf/AppShutdown.h: - * performance-tests/CSD_Strategy/TestInf/CancelledException.idl: - * performance-tests/CSD_Strategy/TestInf/ClientEngine.cpp: - * performance-tests/CSD_Strategy/TestInf/ClientEngine.h: - * performance-tests/CSD_Strategy/TestInf/ClientTask.cpp: - * performance-tests/CSD_Strategy/TestInf/ClientTask.h: - * performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc: - * performance-tests/CSD_Strategy/TestInf/CSD_PT_TestInf_Export.h: - * performance-tests/CSD_Strategy/TestInf/CustomException.idl: - * performance-tests/CSD_Strategy/TestInf/FooException.idl: - * performance-tests/CSD_Strategy/TestInf/OrbRunner.cpp: - * performance-tests/CSD_Strategy/TestInf/OrbRunner.h: - * performance-tests/CSD_Strategy/TestInf/OrbShutdownTask.cpp: - * performance-tests/CSD_Strategy/TestInf/OrbShutdownTask.h: - * performance-tests/CSD_Strategy/TestInf/OrbTask.cpp: - * performance-tests/CSD_Strategy/TestInf/OrbTask.h: - * performance-tests/CSD_Strategy/TestInf/ServantList_T.cpp: - * performance-tests/CSD_Strategy/TestInf/ServantList_T.h: - * performance-tests/CSD_Strategy/TestInf/TestAppBase.cpp: - * performance-tests/CSD_Strategy/TestInf/TestAppBase.h: - * performance-tests/CSD_Strategy/TestInf/TestAppException.idl: - * performance-tests/CSD_Strategy/TestInf/TestAppMain.h: - * performance-tests/CSD_Strategy/TestInf/README: - * performance-tests/CSD_Strategy/TestServant/csd_pt_testservant.mpc: - * performance-tests/CSD_Strategy/TestServant/CSD_PT_TestServant_Export.h: - * performance-tests/CSD_Strategy/TestServant/Foo.idl: - * performance-tests/CSD_Strategy/TestServant/Foo_ClientEngine.cpp: - * performance-tests/CSD_Strategy/TestServant/Foo_ClientEngine.h: - * performance-tests/CSD_Strategy/TestServant/Foo_i.cpp: - * performance-tests/CSD_Strategy/TestServant/Foo_i.h: - * performance-tests/CSD_Strategy/TestServant/Foo_Statistics.cpp: - * performance-tests/CSD_Strategy/TestServant/Foo_Statistics.h: - * performance-tests/CSD_Strategy/TestServant/README: - * tests/CSD_Strategy_Tests/README: - * tests/CSD_Strategy_Tests/Broken/client_main.cpp: - * tests/CSD_Strategy_Tests/Broken/ClientApp.cpp: - * tests/CSD_Strategy_Tests/Broken/ClientApp.h: - * tests/CSD_Strategy_Tests/Broken/CSD_TP_Broken.mpc: - * tests/CSD_Strategy_Tests/Broken/run_test.pl: - * tests/CSD_Strategy_Tests/Broken/server_main.cpp: - * tests/CSD_Strategy_Tests/Broken/ServerApp.cpp: - * tests/CSD_Strategy_Tests/Broken/ServerApp.h: - * tests/CSD_Strategy_Tests/TP_Common/AppHelper.cpp: - * tests/CSD_Strategy_Tests/TP_Common/AppHelper.h: - * tests/CSD_Strategy_Tests/TP_Common/AppShutdown.cpp: - * tests/CSD_Strategy_Tests/TP_Common/AppShutdown.h: - * tests/CSD_Strategy_Tests/TP_Common/CancelledException.idl: - * tests/CSD_Strategy_Tests/TP_Common/ClientEngine.cpp: - * tests/CSD_Strategy_Tests/TP_Common/ClientEngine.h: - * tests/CSD_Strategy_Tests/TP_Common/ClientTask.cpp: - * tests/CSD_Strategy_Tests/TP_Common/ClientTask.h: - * tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Export.h: - * tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib.mpc: - * tests/CSD_Strategy_Tests/TP_Common/CustomException.idl: - * tests/CSD_Strategy_Tests/TP_Common/FooException.idl: - * tests/CSD_Strategy_Tests/TP_Common/OrbRunner.cpp: - * tests/CSD_Strategy_Tests/TP_Common/OrbRunner.h: - * tests/CSD_Strategy_Tests/TP_Common/OrbShutdownTask.cpp: - * tests/CSD_Strategy_Tests/TP_Common/OrbShutdownTask.h: - * tests/CSD_Strategy_Tests/TP_Common/OrbTask.cpp: - * tests/CSD_Strategy_Tests/TP_Common/OrbTask.h: - * tests/CSD_Strategy_Tests/TP_Common/ServantList_T.cpp: - * tests/CSD_Strategy_Tests/TP_Common/ServantList_T.h: - * tests/CSD_Strategy_Tests/TP_Common/StatisticsHelper.cpp: - * tests/CSD_Strategy_Tests/TP_Common/StatisticsHelper.h: - * tests/CSD_Strategy_Tests/TP_Common/TestAppBase.cpp: - * tests/CSD_Strategy_Tests/TP_Common/TestAppBase.h: - * tests/CSD_Strategy_Tests/TP_Common/TestAppException.idl: - * tests/CSD_Strategy_Tests/TP_Common/TestAppMain.h: - * tests/CSD_Strategy_Tests/TP_Foo_A/CSD_TP_Foo_A_Export.h: - * tests/CSD_Strategy_Tests/TP_Foo_A/csd_tp_foo_a_lib.mpc: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A.idl: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.h: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_Statistics.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_Statistics.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/Callback.idl: - * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/CSD_TP_Foo_B_Export.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/csd_tp_foo_b_lib.mpc: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_SimpleClientEngine.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_SimpleClientEngine.h: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/CSD_TP_Foo_C_Export.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/csd_tp_foo_c_lib.mpc: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C.idl: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op1.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op1.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op3.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op3.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op4.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op4.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op5.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op5.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_Proxy.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_Proxy.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Statistics.cpp: - * tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Statistics.h: - * tests/CSD_Strategy_Tests/TP_Test_1/client_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_1/ClientApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_1/ClientApp.h: - * tests/CSD_Strategy_Tests/TP_Test_1/CSD_TP_Test_1.mpc: - * tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl: - * tests/CSD_Strategy_Tests/TP_Test_1/server_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.h: - * tests/CSD_Strategy_Tests/TP_Test_2/client_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_2/ClientApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_2/ClientApp.h: - * tests/CSD_Strategy_Tests/TP_Test_2/CSD_TP_Test_2.mpc: - * tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl: - * tests/CSD_Strategy_Tests/TP_Test_2/server_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.h: - * tests/CSD_Strategy_Tests/TP_Test_3/client_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.h: - * tests/CSD_Strategy_Tests/TP_Test_3/CSD_TP_Test_3.mpc: - * tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl: - * tests/CSD_Strategy_Tests/TP_Test_3/server_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.h: - * tests/CSD_Strategy_Tests/TP_Test_4/client_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_4/ClientApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_4/ClientApp.h: - * tests/CSD_Strategy_Tests/TP_Test_4/CSD_TP_Test_4.mpc: - * tests/CSD_Strategy_Tests/TP_Test_4/README: - * tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl: - * tests/CSD_Strategy_Tests/TP_Test_4/server_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.h: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/client.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/CSD_TP_Test_Dynamic.mpc: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/README: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/server.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/svc.conf: - * tests/CSD_Strategy_Tests/TP_Test_Dynamic/Test.idl: - * tests/CSD_Strategy_Tests/TP_Test_Static/client_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.h: - * tests/CSD_Strategy_Tests/TP_Test_Static/CSD_TP_Test_Static.mpc: - * tests/CSD_Strategy_Tests/TP_Test_Static/README: - * tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl: - * tests/CSD_Strategy_Tests/TP_Test_Static/server_main.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp: - * tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.h: - * tests/CSD_Strategy_Tests/TP_Test_Static/svc.conf: - - All of the files above are part of the examples, tests and performance - tests added for the CSD feature. - Tue Oct 18 13:23:21 2005 Chris Cleeland <cleeland_c@ociweb.com> * docs/ec_options.html: Finally updated documentation to @@ -1,10 +1,7 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known) =========================================================================== -. (JTC) provide example Telecom Log Service Persistance Strategies that - use BerkeleyDB, ODBC, etc. Refine Strategy interface as required. - -. (JTC) autoconf support for tests and examples subdirectories. +. (JTC/Ossama) autoconf support for TAO tests and examples . (Ossama) Remainder of CSIv2 code that didn't make it into TAO 1.4.2 diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 9b97918701c..fa375c5e5c3 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -1670,12 +1670,6 @@ TAO_CodeGen::gen_stub_src_includes (void) this->gen_standard_include (this->client_stubs_, "tao/Messaging/Asynch_Invocation_Adapter.h"); -#if !defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) - this->gen_standard_include (this->client_stubs_, - "tao/Messaging/ExceptionHolder_i.h"); -#endif - -#if defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) // If a valuetype has been seen, this will already be in the header file. if (!idl_global->valuetype_seen_) { @@ -1690,7 +1684,6 @@ TAO_CodeGen::gen_stub_src_includes (void) this->gen_standard_include (this->client_stubs_, "tao/Valuetype/Valuetype_Adapter_Impl.h"); } -#endif } // If valuefactory_seen_ was set, this was generated in the stub header file, diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp index 43b3c7038eb..0bfa528a933 100644 --- a/TAO/TAO_IDL/be/be_global.cpp +++ b/TAO/TAO_IDL/be/be_global.cpp @@ -87,7 +87,6 @@ BE_GlobalData::BE_GlobalData (void) lookup_strategy_ (TAO_PERFECT_HASH), void_type_ (0), ccmobject_ (0), - exceptionholder_ (0), gen_anyop_files_ (I_FALSE), gen_skel_files_ (I_TRUE), gen_client_inline_ (I_TRUE), @@ -1087,18 +1086,6 @@ BE_GlobalData::ccmobject (be_interface *val) this->ccmobject_ = val; } -be_valuetype * -BE_GlobalData::exceptionholder (void) const -{ - return this->exceptionholder_; -} - -void -BE_GlobalData::exceptionholder (be_valuetype *val) -{ - this->exceptionholder_ = val; -} - idl_bool BE_GlobalData::gen_anyop_files (void) const { diff --git a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp index ef9af42c2bc..61eedb3a7cd 100644 --- a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp +++ b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp @@ -34,8 +34,6 @@ #include "be_attribute.h" #include "be_predefined_type.h" #include "be_argument.h" -#include "be_global.h" -#include "be_extern.h" #include "utl_identifier.h" #include "nr_extern.h" #include "global_extern.h" @@ -311,8 +309,6 @@ be_visitor_ami_pre_proc::visit_attribute (be_attribute *node) return 0; } -#if defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) - be_valuetype * be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) { @@ -332,7 +328,7 @@ be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) ACE_NEW_RETURN (msg, be_module (sn), 0); - + idl_global->scopes ().push (msg); ACE_NEW_RETURN (id, @@ -373,7 +369,7 @@ be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) 0, 0), 0); - + idl_global->scopes ().pop (); inherit_vt->set_name (inherit_name); @@ -402,7 +398,7 @@ be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) 0); p_intf[0] = inherit_vt; - + UTL_Scope *s = node->defined_in (); idl_global->scopes ().push (s); @@ -421,7 +417,7 @@ be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) 0, 0), 0); - + idl_global->scopes ().pop (); excep_holder->set_defined_in (s); @@ -489,129 +485,6 @@ be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) return excep_holder; } -#else /* !TAO_HAS_DEPRECATED_EXCEPTION_HOLDER */ - -be_valuetype * -be_visitor_ami_pre_proc::create_exception_holder (be_interface *node) -{ - be_valuetype *global = be_global->exceptionholder (); - if (global != 0) - { - return global; - } - - Identifier *id = 0; - UTL_ScopedName *sn = 0; - - ACE_NEW_RETURN (id, - Identifier ("Messaging"), - 0); - - ACE_NEW_RETURN (sn, - UTL_ScopedName (id, - 0), - 0); - - be_module *msg = 0; - ACE_NEW_RETURN (msg, - be_module (sn), - 0); - - idl_global->scopes ().push (msg); - - ACE_NEW_RETURN (id, - Identifier ("Messaging"), - 0); - - // Create a virtual module named "Messaging" and an valuetype "ExceptionHolder" - // from which we inherit. - UTL_ScopedName *inherit_name = 0; - ACE_NEW_RETURN (inherit_name, - UTL_ScopedName (id, - 0), - 0); - - ACE_NEW_RETURN (id, - Identifier ("ExceptionHolder"), - 0); - - ACE_NEW_RETURN (sn, - UTL_ScopedName (id, - 0), - 0); - - inherit_name->nconc (sn); - - be_valuetype *inherit_vt = 0; - ACE_NEW_RETURN (inherit_vt, - be_valuetype (inherit_name, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0), - 0); - - inherit_vt->set_name (inherit_name); - inherit_vt->seen_in_operation (I_TRUE); - - // Notice the valuetype "ExceptionHolder" that it is defined in the - // "Messaging" module - inherit_vt->set_defined_in (msg); - inherit_vt->set_prefix_with_typeprefix ("omg.org"); - - // Create the exception holder name - ACE_CString excep_holder_local_name; - excep_holder_local_name = "ExceptionHolder"; - - UTL_ScopedName *excep_holder_name = 0; - excep_holder_name = - static_cast<UTL_ScopedName *> (node->name ()->copy ()); - excep_holder_name->last_component ()->replace_string ( - excep_holder_local_name.rep () - ); - - AST_Interface_ptr *p_intf = 0; - ACE_NEW_RETURN (p_intf, - AST_Interface_ptr[1], - 0); - - p_intf[0] = inherit_vt; - - be_valuetype *excep_holder = 0; - ACE_NEW_RETURN (excep_holder, - be_valuetype (excep_holder_name, - p_intf, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0), - 0); - - idl_global->scopes ().pop (); - excep_holder->seen_in_operation (I_TRUE); - excep_holder->cli_hdr_gen (true); - excep_holder->set_imported (true); - - be_global->exceptionholder (excep_holder); - - return excep_holder; -} - -#endif - be_interface * be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, be_valuetype *excep_holder) @@ -824,7 +697,6 @@ be_visitor_ami_pre_proc::create_raise_operation ( operation->set_name (op_name); operation->set_defined_in (excep_holder); -#if defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) if (operation_kind == NORMAL) { if (orig_op) @@ -837,7 +709,6 @@ be_visitor_ami_pre_proc::create_raise_operation ( } } } -#endif // Set the proper strategy. be_operation_ami_exception_holder_raise_strategy *boaehrs = 0; @@ -1177,14 +1048,8 @@ be_visitor_ami_pre_proc::create_reply_handler_operation ( operation->set_defined_in (reply_handler); -#if !defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) - // Copy the exceptions. - if (node->exceptions ()) - { - UTL_ExceptList *exceptions = node->exceptions (); - operation->be_add_exceptions (exceptions); - } -#endif + // We do not copy the exceptions because the exceptions + // are delivered by the excep methods. // After having generated the operation we insert it into the // reply handler interface. @@ -1520,7 +1385,7 @@ be_visitor_ami_pre_proc::create_inheritance_list (be_interface *node, ACE_NEW_RETURN (msg, be_module (sn), 0); - + idl_global->scopes ().push (msg); // Create a virtual module named "Messaging" and an interface "ReplyHandler" @@ -1559,7 +1424,7 @@ be_visitor_ami_pre_proc::create_inheritance_list (be_interface *node, inherit_intf->set_name (inherit_name); inherit_intf->set_prefix_with_typeprefix ("omg.org"); - + idl_global->scopes ().pop (); // Notice the interface "ReplyHandler" that it is defined in the diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp index fa1334c89bf..0b6e0b99818 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp @@ -20,8 +20,8 @@ // // ============================================================================ -ACE_RCSID (be_visitor_operation, - ami_handler_reply_stub_operation_ch, +ACE_RCSID (be_visitor_operation, + ami_handler_reply_stub_operation_ch, "$Id$") // ************************************************************ @@ -52,7 +52,7 @@ be_visitor_operation_ami_handler_reply_stub_operation_ch::visit_operation ( if (!node->has_native ()) { // Next line. - *os << be_nl << be_nl + *os << be_nl << be_nl << "static void "; // Check if we are an attribute node in disguise @@ -73,7 +73,7 @@ be_visitor_operation_ami_handler_reply_stub_operation_ch::visit_operation ( << "_reply_stub (" << be_idt << be_idt_nl; *os << "TAO_InputCDR &_tao_reply_cdr," << be_nl - << "::Messaging::ReplyHandler_ptr _tao_reply_handler," << be_nl + << "Messaging::ReplyHandler_ptr _tao_reply_handler," << be_nl << "::CORBA::ULong reply_status"; *os << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp index c04de8128d7..be325370a40 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp @@ -56,8 +56,6 @@ be_visitor_operation_ami_handler_reply_stub_operation_cs::post_process ( return 0; } -#if defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) - int be_visitor_operation_ami_handler_reply_stub_operation_cs::visit_operation ( be_operation *node @@ -130,7 +128,7 @@ be_visitor_operation_ami_handler_reply_stub_operation_cs::visit_operation ( // Generate the argument list. *os << "TAO_InputCDR &_tao_in, " << be_nl - << "::Messaging::ReplyHandler_ptr _tao_reply_handler," << be_nl + << "Messaging::ReplyHandler_ptr _tao_reply_handler," << be_nl << "::CORBA::ULong reply_status"; *os << be_nl @@ -291,261 +289,6 @@ be_visitor_operation_ami_handler_reply_stub_operation_cs::visit_operation ( return 0; } -#else - -int -be_visitor_operation_ami_handler_reply_stub_operation_cs::visit_operation ( - be_operation *node - ) -{ - be_type *bt; - be_visitor_context ctx; - - TAO_OutStream *os = this->ctx_->stream (); - this->ctx_->node (node); - - // Initialize the return type variable. - bt = be_type::narrow_from_decl (node->return_type ()); - - if (!bt) - { - ACE_ERROR_RETURN (( - LM_ERROR, - "(%N:%l) be_visitor_ami_handler_reply_stub_operation_cs::" - "visit_operation - " - "Bad return type\n" - ), - -1 - ); - } - - // Start with the current indentation level. - os->indent (); - - // Generate the return type. Return type is simply void. - *os << be_nl << "void" << be_nl; - - // Get the scope name. - be_decl *parent = - be_scope::narrow_from_scope (node->defined_in ())->decl (); - - if (!parent) - { - ACE_ERROR_RETURN (( - LM_ERROR, - "(%N:%l) be_visitor_operation_ami_handler_reply_stub_operation_cs::" - "visit_operation - " - "node information not sufficient :-<\n" - ), - -1 - ); - } - - // Genereate scope name. - *os << parent->full_name (); - - // Generate the operation name. - *os << "::"; - - // Check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // Now check if we are a "get" or "set" operation - if (node->nmembers () == 1) - { - *os << "_set_"; - } - else - { - *os << "_get_"; - } - } - - *os << node->local_name () << "_reply_stub (" << be_idt_nl; - - // Generate the argument list. - *os << "TAO_InputCDR &_tao_in, " << be_nl - << "::Messaging::ReplyHandler_ptr _tao_reply_handler," << be_nl - << "::CORBA::ULong reply_status"; - - *os << be_nl - << "ACE_ENV_ARG_DECL"; - - *os << ")" << be_uidt << be_uidt_nl; - - // Generate the actual code for the stub. However, if any of the argument - // types is "native", we flag a MARSHAL exception. - // last argument - is always ACE_ENV_ARG_PARAMETER - *os << "{\n" << be_idt; - - os->indent(); - - *os << "// Retrieve Reply Handler object." << be_nl; - *os << parent->full_name () << "_var " - << "_tao_reply_handler_object =" << be_idt_nl; - - *os << parent->full_name (); - *os << "::_narrow (_tao_reply_handler ACE_ENV_ARG_PARAMETER);" << be_uidt_nl; - - *os << "ACE_CHECK;" << be_nl << be_nl - << "// Exception handling" << be_nl - << "switch (reply_status)" << be_nl - << "{" << be_idt_nl - << "case TAO_AMI_REPLY_OK:" << be_nl - << "{" << be_idt << "\n"; - - // declare variables for arguments - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_DECL_SS); - be_visitor_operation_argument oad_visitor (&ctx); - - if (node->accept (&oad_visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) ami_handler_reply_stub_operation_cs::" - "visit_operation - " - "codegen for return var decl failed\n"), - -1); - } - - // Demarshal parameters - if (this->gen_marshal_and_invoke (node, bt) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%1) ami_handler_reply_stub_operation_cs::" - "visit_operation - " - "gen_demarshal_params failed\n"), - -1); - } - - *os << "break;" << be_uidt_nl - << "}" << be_nl - << "case TAO_AMI_REPLY_USER_EXCEPTION:" << be_nl - << "case TAO_AMI_REPLY_SYSTEM_EXCEPTION:" << be_nl - << "{" << be_idt_nl - << "const ACE_Message_Block* cdr = _tao_in.start ();" << be_nl ; - - be_interface *original = - (be_interface::narrow_from_decl (parent))->original_interface (); - - if (!original) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%1) ami_handler_reply_stub_operation_cs::" - "visit_operation - " - "original interface is not set\n"), - -1); - } - - const char *exception_data_arg = "0"; - const char *exception_count_arg = "0"; - - // Don't do anything if the exception list is empty. - if (node->exceptions ()) - { - *os << be_nl << "static TAO::Exception_Data " << "exceptions_data [] = " << be_nl; - *os << "{" << be_idt_nl; - - int excep_count = 0; - - be_exception *ex = 0; - - // Initialize an iterator to iterate thru the exception list. - // Continue until each element is visited. - // Iterator must be explicitly advanced inside the loop. - for (UTL_ExceptlistActiveIterator ei (node->exceptions ()); - !ei.is_done ();) - { - ex = be_exception::narrow_from_decl (ei.item ()); - - *os << "{" << be_idt_nl - << "\"" << ex->repoID () << "\"," << be_nl; - // Allocator method. - *os << ex->name () << "::_alloc" - << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl; - - if (be_global->tc_support ()) - { - *os << ", " << ex->tc_name (); - } - else - { - *os << ", 0"; - } - - *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_uidt_nl - << "}"; - - ++excep_count; - ei.next (); - - if (!ei.is_done ()) - { - *os << "," << be_nl; - } - - } - - *os << be_uidt_nl << "};\n\n"; - - os->indent (); - *os << "::CORBA::ULong exceptions_count = " - << excep_count << ";\n" << be_nl; - - exception_data_arg = "exceptions_data"; - exception_count_arg = "exceptions_count"; - } - - *os << "::CORBA::OctetSeq " - << "_tao_marshaled_exception (" << be_idt << be_idt_nl - << "static_cast <CORBA::ULong> (cdr->length ())," << be_nl - << "static_cast <CORBA::ULong> (cdr->length ())," << be_nl - << "reinterpret_cast <unsigned char*> (cdr->rd_ptr ())," << be_nl - << "0" << be_uidt_nl - << ");" << be_uidt_nl; - - *os << "::Messaging::ExceptionHolder_var exception_holder_var;" << be_nl - << "ACE_NEW (" << be_idt << be_idt_nl - << "exception_holder_var," << be_nl - << "::TAO::ExceptionHolder (" << be_idt_nl - << "(reply_status == TAO_AMI_REPLY_SYSTEM_EXCEPTION)," << be_nl - << "_tao_in.byte_order ()," << be_nl - << "_tao_marshaled_exception," << be_nl - << exception_data_arg << "," << be_nl - << exception_count_arg << ")" << be_uidt_nl - << ");" << be_uidt_nl << be_nl; - - *os << "_tao_reply_handler_object->" - << node->local_name () << "_excep (" << be_idt << be_idt_nl - << "exception_holder_var"; - - if (!be_global->exception_support ()) - { - *os << " ACE_ENV_ARG_PARAMETER"; - } - - *os << be_uidt_nl << ");" << be_uidt_nl; - - if (!be_global->exception_support ()) - { - *os << "ACE_CHECK;" << be_nl; - } - - *os << "break;" << be_uidt_nl - << "}" << be_nl; - - *os << "case TAO_AMI_REPLY_NOT_OK:" << be_idt_nl - << "// @@ Michael: Not even the spec mentions this case." << be_nl - << "// We have to think about this case." << be_nl - << "break;" << be_uidt << be_uidt_nl - << "}" << be_uidt << be_uidt_nl; - *os << "}" << be_nl << be_nl; - - return 0; -} - -#endif - // This method is used to generate the ParamData table entry. int be_visitor_operation_ami_handler_reply_stub_operation_cs::visit_argument ( diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp index 0237b6408f4..32ebe90e547 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_ch.cpp @@ -18,8 +18,8 @@ // // ============================================================================ -ACE_RCSID (be_visitor_valuetype, - ami_exception_holder_ch, +ACE_RCSID (be_visitor_valuetype, + ami_exception_holder_ch, "$Id$") // ****************************************************** @@ -42,7 +42,6 @@ be_visitor_valuetype_ami_exception_holder_ch::visit_valuetype ( be_valuetype *node ) { -#if defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) TAO_OutStream *os = this->ctx_->stream (); // Generate the implemenation of the Messaging aware ORB. @@ -75,9 +74,7 @@ be_visitor_valuetype_ami_exception_holder_ch::visit_valuetype ( *os << be_uidt_nl << "};"; -#else - ACE_UNUSED_ARG (node); -#endif + return 0; } @@ -87,12 +84,12 @@ be_visitor_valuetype_ami_exception_holder_ch::visit_operation ( ) { be_visitor_context ctx (*this->ctx_); - + // Using the implementation class visitor is strange, but we // do it here because it's the only one that generates the // environment variable in the operation signature without // the trailing _WITH_DEFAULTS, which is what we want. - // For performance reasons, we would rather there be a + // For performance reasons, we would rather there be a // compile error if the user does not pass an environment // variable, than create a default one, which causes extra // TSS activity. @@ -109,7 +106,7 @@ be_visitor_valuetype_ami_exception_holder_ch::visit_operation ( } TAO_OutStream *os = this->ctx_->stream (); - + *os << be_uidt; return 0; diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_cs.cpp index f43230e0343..924091b2ace 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/ami_exception_holder_cs.cpp @@ -18,8 +18,8 @@ // // ============================================================================ -ACE_RCSID (be_visitor_valuetype, - ami_exception_holder_cs, +ACE_RCSID (be_visitor_valuetype, + ami_exception_holder_cs, "$Id$") // ************************************************************ @@ -42,10 +42,9 @@ be_visitor_valuetype_ami_exception_holder_cs::visit_valuetype ( be_valuetype *node ) { -#if defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) TAO_OutStream *os = this->ctx_->stream (); - if (node->is_nested () + if (node->is_nested () && node->defined_in ()->scope_node_type () == AST_Decl::NT_module) { *os << "OBV_"; @@ -54,7 +53,7 @@ be_visitor_valuetype_ami_exception_holder_cs::visit_valuetype ( *os << node->compute_name ("_tao_", "") << "::" << node->compute_local_name ("_tao_", "") << " () { }" << be_nl << be_nl; - if (node->is_nested () + if (node->is_nested () && node->defined_in ()->scope_node_type () == AST_Decl::NT_module) { *os << "OBV_"; @@ -69,12 +68,10 @@ be_visitor_valuetype_ami_exception_holder_cs::visit_valuetype ( ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_valuetype_ami_exception_holder_cs::" "visit_valuetype - " - "codegen for scope failed\n"), + "codegen for scope failed\n"), -1); } -#else - ACE_UNUSED_ARG (node); -#endif + return 0; } diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h index 8dbc04b0ffe..21c5e016cf7 100644 --- a/TAO/TAO_IDL/be_include/be_global.h +++ b/TAO/TAO_IDL/be_include/be_global.h @@ -26,14 +26,11 @@ #include "ace/SString.h" class be_interface; -class be_valuetype; class be_interface_fwd; class UTL_String; class AST_PredefinedType; class AST_Generator; -#define TAO_HAS_DEPRECATED_EXCEPTION_HOLDER - // Defines a class containing all back end global data. class TAO_IDL_BE_Export BE_GlobalData @@ -290,13 +287,13 @@ public: void anyop_header_ending (const char* s); // Set the anyop_header_ending. - + const char* anyop_header_ending (void) const; // Get the anyop_header_ending. - + void anyop_source_ending (const char* s); // Set the anyop_source_ending. - + const char* anyop_source_ending (void) const; // Get the anyop_source_ending. @@ -464,10 +461,6 @@ public: void ccmobject (be_interface *val); // Accessors for the member. - be_valuetype *exceptionholder (void) const; - void exceptionholder (be_valuetype *val); - // Accessors for the member. - idl_bool gen_anyop_files (void) const; void gen_anyop_files (idl_bool val); // Accessors for the member. @@ -514,7 +507,7 @@ private: char* skel_export_include_; char* stub_export_macro_; char* stub_export_include_; - + // Macro and include used on ORB .pidl files generating to the // AnyTypeCode library. char* anyop_export_macro_; @@ -566,7 +559,7 @@ private: // Anyop header file name ending. Default is "A.h". char* anyop_hdr_ending_; - + // Anyop source file name ending. Default is "A.cpp". char* anyop_src_ending_; @@ -649,9 +642,6 @@ private: be_interface *ccmobject_; // Reference holder for component skeleton visitors. - be_valuetype *exceptionholder_; - // Reference holder for the exceptionholder. - idl_bool gen_anyop_files_; // Separate files for generated Any operators? diff --git a/TAO/configure.ac b/TAO/configure.ac index c4ccdb3ac02..57635d79f29 100644 --- a/TAO/configure.ac +++ b/TAO/configure.ac @@ -165,7 +165,6 @@ AM_CONDITIONAL(BUILD_AMI, true) AM_CONDITIONAL(BUILD_REPO, false) AM_CONDITIONAL(BUILD_THREADS, true) AM_CONDITIONAL(BUILD_EC_TYPED_EVENTS, true) -AM_CONDITIONAL(BUILD_WFMO, false) ACE_ENABLE_ACEXML ACE_ENABLE_SSL diff --git a/TAO/docs/libraries.html b/TAO/docs/libraries.html index 26ddf36c89e..c172809bc82 100644 --- a/TAO/docs/libraries.html +++ b/TAO/docs/libraries.html @@ -246,21 +246,6 @@ and the dependencies outlined below are the same. <P> this library </td> <td>valuetype.mpb</td> </tr> - <tr align=left> - <th>libTAO_CSD_Framework.so</th> - <td>Support framework for Custom Servant Dispatching (CSD) feature. The CSD_ThreadPool - depends on this library</td> - <td>csd_framework.mpb</td> - </tr> - <tr align=left> - <th>libTAO_CSD_ThreadPool.so</th> - <td>Support for ThreadPool Custom Servant Dispatching (CSD) Strategy. This library can - be loaded statically or dynamically. Applications are required to - <code> #include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - </code> for static loading and provide service configuration file for dynamic loading. - </td> - <td>csd_threadpool.mpb</td> - </tr> </tr> </table> diff --git a/TAO/examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc b/TAO/examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc deleted file mode 100644 index 33b7e1a515b..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool/CSD_Test_ThreadPool.mpc +++ /dev/null @@ -1,24 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server) : csd_threadpool, taoexe, portableserver { - exename = server_main - - Source_Files { - Foo_i.cpp - ServerApp.cpp - server_main.cpp - OrbShutdownTask.cpp - } -} - -project(*Client): taoexe, anytypecode { - exename = client_main - - Source_Files { - FooC.cpp - ClientApp.cpp - client_main.cpp - } -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool/Foo_i.h b/TAO/examples/CSD_Strategy/ThreadPool/Foo_i.h deleted file mode 100644 index ef3ce44dfed..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool/Foo_i.h +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ -#ifndef FOO_I_H -#define FOO_I_H - -#include "FooS.h" -#include "ace/CORBA_macros.h" -#include "tao/Environment.h" - - -class Foo_i : public virtual POA_Foo, - public virtual PortableServer::ServantBase -{ - public: - - Foo_i(unsigned num_clients); - virtual ~Foo_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - - private: - - CORBA::Long value_; - unsigned num_clients_; - - unsigned count_op1_; - unsigned count_op2_; - unsigned count_op3_; - unsigned count_op4_; - unsigned count_op5_; -}; - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool/ServerApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool/ServerApp.cpp deleted file mode 100644 index b036b9ff205..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool/ServerApp.cpp +++ /dev/null @@ -1,237 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "Foo_i.h" -#include "OrbShutdownTask.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - -ServerApp::ServerApp() -: num_clients_ (1) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheOrbShutdownTask::instance()->orb (orb.in ()); - - CORBA::Object_var obj - = orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager( ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(0); - policies.length(0); - - PortableServer::POA_var child_poa - = root_poa->create_POA("ChildPoa", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the child POA.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - ACE_CHECK_RETURN (-1); - - // Create the servant object. - Foo_i* servant = new Foo_i(this->num_clients_); - - // local smart pointer variable to deal with releasing the reference - // to the servant object when the smart pointer object falls out of scope. - PortableServer::ServantBase_var owner_transfer(servant); - - // Activate the servant using the Child POA. - PortableServer::ObjectId_var oid - = child_poa->activate_object(servant - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Obtain the object reference. - obj = child_poa->servant_to_reference(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to activate servant (Foo_i).\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Stringify the object reference - CORBA::String_var ior - = orb->object_to_string(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Write the stringified object reference to the ior file. - FILE* ior_file = ACE_OS::fopen(this->ior_filename_.c_str(), "w"); - - if (ior_file == 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Cannot open output file for writing IOR: %s", - this->ior_filename_.c_str())); - ACE_THROW_RETURN (TestException(), -1); - } - - ACE_OS::fprintf(ior_file, "%s", ior.in ()); - ACE_OS::fclose(ior_file); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready. Running the ORB event loop.\n")); - - // Run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp ORB has stopped running. " - "Stop the CSD strategy.\n")); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is waiting for OrbShutdownTask.\n")); - TheOrbShutdownTask::instance()->wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - // Sleep for 2 second to let the done() two-way call complete - // before cleanup. - ACE_OS::sleep (2); - - // Tear-down the root poa and orb. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb->destroy( ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "o:n:"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'o': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 'n': - { - int tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - this->usage_statement(); - return -1; - } - - this->num_clients_ = tmp; - } - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - } - - return 0; -} - - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-o <ior_filename>]\n" - "\t[-n <num_clients>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} diff --git a/TAO/examples/CSD_Strategy/ThreadPool/run_test.pl b/TAO/examples/CSD_Strategy/ThreadPool/run_test.pl deleted file mode 100755 index e15decb6a63..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool/run_test.pl +++ /dev/null @@ -1,55 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$iorfile = PerlACE::LocalFile ("server.ior"); -unlink $iorfile; -$status = 0; - -$num_clients=40; - -$SV = new PerlACE::Process ("server_main", "-o $iorfile -n $num_clients"); - -$SV->Spawn (); - -if (PerlACE::waitforfile_timed ($iorfile, - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; -} - -for ($i = 0; $i < $num_clients; $i++) { - - @CLS[$i] = new PerlACE::Process ("client_main", " -i file://$iorfile"); - - @CLS[$i]->Spawn (); -} - -for ($i = 0; $i < $num_clients; $i++) { - - $client = @CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -unlink $iorfile; - -exit $status; diff --git a/TAO/examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc b/TAO/examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc deleted file mode 100644 index c14935e056d..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool2/CSD_Test_ThreadPool2.mpc +++ /dev/null @@ -1,25 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_threadpool, taoexe, portableserver { - exename = server_main - - Source_Files { - Foo_i.cpp - FooServantList.cpp - ServerApp.cpp - server_main.cpp - OrbShutdownTask.cpp - } -} - -project(*Client): taoexe, anytypecode { - exename = client_main - - Source_Files { - FooC.cpp - ClientApp.cpp - client_main.cpp - } -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool2/Foo_i.h b/TAO/examples/CSD_Strategy/ThreadPool2/Foo_i.h deleted file mode 100644 index 1c0de5164bb..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool2/Foo_i.h +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ -#ifndef FOO_I_H -#define FOO_I_H - -#include "FooS.h" -#include "ace/SString.h" -#include "ace/CORBA_macros.h" -#include "tao/Environment.h" - -class FooServantList; - -class Foo_i : public virtual POA_Foo, - public virtual PortableServer::ServantBase -{ - public: - - Foo_i(const char* servant_name, FooServantList* mgr); - virtual ~Foo_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - - private: - - CORBA::Long value_; - - unsigned count_op1_; - unsigned count_op2_; - unsigned count_op3_; - unsigned count_op4_; - unsigned count_op5_; - - ACE_CString servant_name_; - FooServantList* mgr_; -}; - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool2/ServerApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool2/ServerApp.cpp deleted file mode 100644 index a9986df9ec5..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool2/ServerApp.cpp +++ /dev/null @@ -1,229 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "FooServantList.h" -#include "FooC.h" -#include "OrbShutdownTask.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - -ServerApp::ServerApp() - : ior_filename_("foo"), - num_servants_(1), - num_clients_(1) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheOrbShutdownTask::instance()->orb (orb.in ()); - - CORBA::Object_var obj - = orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(1); - policies.length(1); - - policies[0] = root_poa->create_id_assignment_policy(PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - PortableServer::POA_var child_poa - = root_poa->create_POA("ChildPoa", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the child POA.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - policies[0]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - csd_tp_strategy->set_num_threads(this->num_servants_); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - ACE_CHECK_RETURN (-1); - - FooServantList servants(this->ior_filename_.c_str(), - this->num_servants_, - this->num_clients_, - orb.in()); - - servants.create_and_activate(child_poa.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready. Running the ORB event loop.\n")); - - // Run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp ORB has stopped running. " - "Stop the CSD strategy.\n")); - - // Sleep for 2 second to let the done() two-way call complete - // before cleanup. - ACE_OS::sleep (2); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is waiting for OrbShutdownTask.\n")); - TheOrbShutdownTask::instance()->wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - // Tear-down the root poa and orb. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:c:"); - - int c; - int tmp; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'p': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 's': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - this->usage_statement(); - return -1; - } - - this->num_servants_ = tmp; - break; - - case 'c': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - this->usage_statement(); - return -1; - } - - this->num_clients_ = tmp; - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - } - - return 0; -} - - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-p <ior_filename_prefix>]\n" - "\t[-s <num_servants>]\n" - "\t[-c <num_clients>]\n" - "\t[-?]\n", - "Default ior_filename_prefix is 'foo'.\n" - "Default num_servants is 1.\n" - "Default num_clients is 1.\n\n", - this->exe_name_.c_str())); -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool2/run_test.pl b/TAO/examples/CSD_Strategy/ThreadPool2/run_test.pl deleted file mode 100755 index 60be2077f11..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool2/run_test.pl +++ /dev/null @@ -1,77 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$status = 0; - -$iorfname_prefix = "server"; -$num_servants=10; -$num_clients_per_servant=4; -$num_clients=$num_servants * $num_clients_per_servant; - -#Delete old ior files. -for (my $i = 0; $i < $num_servants; $i++) { - $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process ("server_main", "-p $iorfname_prefix -s $num_servants -c $num_clients"); - -$SV->Spawn (); - -# Wait for the servant ior files created by server. -for (my $i = 0; $i < $num_servants; $i++) { - $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - - if (PerlACE::waitforfile_timed ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; - } -} - -$count = 0; - -for (my $i = 0; $i < $num_servants; $i++) { - for ($j = 0; $j < $num_clients_per_servant; $j++) { - $CLS[$count] = new PerlACE::Process ("client_main", " -i file://$iorfile[$i]"); - $CLS[$count]->Spawn (); - $count ++; - } -} - -for (my $i = 0; $i < $num_clients; $i++) { - $client = $CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for (my $i = 0; $i < $num_servants; $i++) { - $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc b/TAO/examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc deleted file mode 100644 index 04902011dd3..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool3/CSD_Test_ThreadPool3.mpc +++ /dev/null @@ -1,25 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_threadpool, taoexe, portableserver { - exename = server_main - - Source_Files { - Foo_i.cpp - OrbTask.cpp - ServerApp.cpp - server_main.cpp - OrbShutdownTask.cpp - } -} - -project(*Client): taoexe, anytypecode { - exename = client_main - - Source_Files { - FooC.cpp - ClientApp.cpp - client_main.cpp - } -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool3/Foo_i.h b/TAO/examples/CSD_Strategy/ThreadPool3/Foo_i.h deleted file mode 100644 index 8ad9d4cb37d..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool3/Foo_i.h +++ /dev/null @@ -1,40 +0,0 @@ -// $Id$ -#ifndef FOO_I_H -#define FOO_I_H - -#include "FooS.h" - - -class Foo_i : public virtual POA_Foo, - public virtual PortableServer::ServantBase -{ - public: - - Foo_i(unsigned num_clients); - virtual ~Foo_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - private: - - CORBA::Long value_; - unsigned num_clients_; -}; - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool3/ServerApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool3/ServerApp.cpp deleted file mode 100644 index 0625e2baf67..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool3/ServerApp.cpp +++ /dev/null @@ -1,269 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "Foo_i.h" -#include "OrbTask.h" -#include "OrbShutdownTask.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - -ServerApp::ServerApp() - : ior_filename_("ServerApp.default.ior"), - num_clients_(1), - num_orb_threads_(1) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheOrbShutdownTask::instance()->orb (orb.in ()); - - CORBA::Object_var obj - = orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(0); - policies.length(0); - - PortableServer::POA_var child_poa - = root_poa->create_POA("ChildPoa", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the child POA.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - ACE_CHECK_RETURN (-1); - - // Create the servant object. - Foo_i* servant = new Foo_i(this->num_clients_); - - // local smart pointer variable to deal with releasing the reference - // to the servant object when the smart pointer object falls out of scope. - PortableServer::ServantBase_var owner_transfer(servant); - - // Activate the servant using the Child POA. - PortableServer::ObjectId_var oid - = child_poa->activate_object(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Obtain the object reference. - obj = child_poa->servant_to_reference(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to activate servant (Foo_i).\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Stringify the object reference - CORBA::String_var ior - = orb->object_to_string(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Write the stringified object reference to the ior file. - FILE* ior_file = ACE_OS::fopen(this->ior_filename_.c_str(), "w"); - - if (ior_file == 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Cannot open output file for writing IOR: %s", - this->ior_filename_.c_str())); - ACE_THROW_RETURN (TestException(), -1); - } - - ACE_OS::fprintf(ior_file, "%s", ior.in ()); - ACE_OS::fclose(ior_file); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready.\n")); - - // If the num_orb_threads_ is exactly one, then just use the current - // (mainline) thread to run the ORB event loop. - if (this->num_orb_threads_ == 1) - { - // Since the num_orb_threads_ is exactly one, we just use the current - // (mainline) thread to run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - else - { - // The num_orb_threads_ is greater than 1, so we will use an OrbTask - // (active object) to run the ORB event loop in (num_orb_threads_ - 1) - // threads. We use the current (mainline) thread as the other thread - // running the ORB event loop. - OrbTask orb_task(orb.in(), this->num_orb_threads_ - 1); - - // Activate the OrbTask worker threads - if (orb_task.open() != 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to open the OrbTask.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // This will use the current (mainline) thread to run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Now that the current thread has unblocked from running the orb, - // make sure to wait for all of the worker threads to complete. - orb_task.wait(); - } - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is waiting for OrbShutdownTask.\n")); - TheOrbShutdownTask::instance()->wait (); - - // Sleep for 2 second to let the done() two-way call complete - // before cleanup. - ACE_OS::sleep (2); - - // Tear-down the root poa and orb. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "o:n:t:"); - - int c; - int tmp; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'o': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 'n': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - this->usage_statement(); - return -1; - } - - this->num_clients_ = tmp; - break; - - case 't': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - this->usage_statement(); - return -1; - } - - this->num_orb_threads_ = tmp; - break; - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - } - - return 0; -} - - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-o <ior_filename>]\n" - "\t[-n <num_clients>]\n" - "\t[-t <num_orb_threads>]\n" - "\t[-?]\n", - "Default ior_filename_prefix is 'foo'.\n" - "Default num_servants is 1.\n" - "Default num_clients is 1.\n\n", - this->exe_name_.c_str())); -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool3/run_test.pl b/TAO/examples/CSD_Strategy/ThreadPool3/run_test.pl deleted file mode 100755 index b0c25a6456b..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool3/run_test.pl +++ /dev/null @@ -1,56 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$iorfile = PerlACE::LocalFile ("server.ior"); -unlink $iorfile; -$status = 0; - -$num_clients=40; -$num_orb_threads=4; - -$SV = new PerlACE::Process ("server_main", "-o $iorfile -n $num_clients -t $num_orb_threads"); - -$SV->Spawn (); - -if (PerlACE::waitforfile_timed ($iorfile, - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; -} - -for ($i = 0; $i < $num_clients; $i++) { - - @CLS[$i] = new PerlACE::Process ("client_main", " -i file://$iorfile"); - - @CLS[$i]->Spawn (); -} - -for ($i = 0; $i < $num_clients; $i++) { - - $client = @CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -unlink $iorfile; - -exit $status; diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc b/TAO/examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc deleted file mode 100644 index 386d4964863..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/CSD_Test_ThreadPool4.mpc +++ /dev/null @@ -1,15 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_threadpool, messaging, taoexe, portableserver { - exename = server_main - - Source_Files { - Foo_i.cpp - Callback_i.cpp - ServerApp.cpp - server_main.cpp - ClientTask.cpp - OrbShutdownTask.cpp - } -} diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/Callback_i.h b/TAO/examples/CSD_Strategy/ThreadPool4/Callback_i.h deleted file mode 100644 index f2f72d3e1dc..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/Callback_i.h +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ -#ifndef CALLBACK_I_H -#define CALLBACK_I_H - -#include "CallbackS.h" - - -class Callback_i : public virtual POA_Callback, - public virtual PortableServer::ServantBase -{ - public: - - Callback_i(); - - virtual ~Callback_i(); - - virtual void test_method ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -}; - - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/ClientTask.cpp b/TAO/examples/CSD_Strategy/ThreadPool4/ClientTask.cpp deleted file mode 100644 index 93aadcf0e78..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/ClientTask.cpp +++ /dev/null @@ -1,213 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file ClientTask.cpp - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#include "ClientTask.h" -#include "ace/SString.h" -#include "ace/OS.h" - - -ClientTask::ClientTask(Foo_ptr foo, - Callback_ptr callback) -: foo_(Foo::_duplicate(foo)), - callback_(Callback::_duplicate(callback)) -{ -} - - -ClientTask::~ClientTask() -{ -} - - -int -ClientTask::open(void*) -{ - if (this->activate(THR_NEW_LWP | THR_JOINABLE, 1) != 0) - { - // Assumes that when activate returns non-zero return code that - // no threads were activated. - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) ClientTask failed to activate " - "the client thread.\n"), - -1); - } - - return 0; -} - - -int -ClientTask::svc() -{ - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc start\n")); - - ACE_TRY_NEW_ENV - { - for (CORBA::Long i = 1; i <= 100; i++) - { - // Simple Two-way calls. - this->foo_->op1(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->op2(i ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - CORBA::Long value = this->foo_->op3(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> Value retrieved from op3() == %d\n", - value)); - - for (CORBA::Long j = 1; j <= 5; j++) - { - this->foo_->op4(495 + (i * 5) + j ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_TRY_EX (op5) - { - ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> Invoke op5()\n")); - this->foo_->op5(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK_EX (op5); - ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> No exception raised from op5(). :-(\n")); - } - ACE_CATCH (FooException, ex) - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> Caught FooException - as expected.\n")); - - } - ACE_ENDTRY; - - // Two-Way calls with inout parameters. - CORBA::String_var message = CORBA::string_dup( "Hello! " ); - CORBA::Boolean result - = this->foo_->op6( "TAO User", message.inout() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (result) - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> Message from op6() == %s\n", - message.in ())); - } - else - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> op6() returned false.\n")); - } - - // Callback test. - this->foo_->callback_object (this->callback_.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->test_callback (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // One-Way calls with various arguments. - CORBA::String_var ub_string = CORBA::string_dup( "UNBOUNDED STRING" ); - this->foo_->test_unbounded_string_arg (ub_string.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::String_var bd_string = CORBA::string_dup( "BOUNDED STRING" ); - this->foo_->test_bounded_string_arg (bd_string.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Fixed_Array fixed_array; - - for (CORBA::ULong m = 0; m < 20; m ++) - { - fixed_array[m] = i + m; - } - - this->foo_->test_fixed_array_arg (fixed_array ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Var_Array var_array; - var_array[0] = CORBA::string_dup( "STRING 1" ); - var_array[1] = CORBA::string_dup( "STRING 2" ); - var_array[2] = CORBA::string_dup( "STRING 3" ); - this->foo_->test_var_array_arg (var_array ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Bounded_Var_Size_var bd_var_size_string = new Bounded_Var_Size(); - const char* buffer1 = "BOUNDED VAR SIZE CHAR"; - bd_var_size_string->replace (bd_var_size_string->maximum (), - ACE_OS::strlen (buffer1) + 1, - (CORBA::Char*)buffer1); - this->foo_->test_bounded_var_size_arg (bd_var_size_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - const char* buffer2 = "UNBOUNDED VAR SIZE CHAR"; - Unbounded_Var_Size_var ub_var_size_string = new Unbounded_Var_Size(100); - ub_var_size_string->replace (ub_var_size_string->maximum (), - ACE_OS::strlen (buffer2) + 1, - (CORBA::Char*)buffer2); - this->foo_->test_unbounded_var_size_arg (ub_var_size_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - TimeOfDay t; - t.hour = 12; - t.minute = 30; - t.second = 10; - this->foo_->test_fixed_size_arg (t ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->test_fixed_size_arg_two_way (t ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Boolean special_value = 1; - this->foo_->test_special_basic_arg (special_value ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->test_objref_arg (this->callback_.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc - Invoke foo->done()\n")); - - this->foo_->done (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc - Back from foo->done()\n")); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Caught exception in ClientTask::svc():"); - } - ACE_CATCHALL - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Unknown (...) exception caught in ClientTask::svc()\n")); - } - ACE_ENDTRY; - - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc end\n")); - - return 0; -} - - -int -ClientTask::close(u_long) -{ - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::close() - enter/exit\n")); - return 0; -} diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/Foo.idl b/TAO/examples/CSD_Strategy/ThreadPool4/Foo.idl deleted file mode 100644 index 715dd264d41..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/Foo.idl +++ /dev/null @@ -1,73 +0,0 @@ -// $Id$ -#ifndef FOO_IDL -#define FOO_IDL - -#include "Callback.idl" - -exception FooException {}; -exception TestException {}; - -typedef sequence<char, 32> Bounded_Var_Size; -typedef sequence<char> Unbounded_Var_Size; -typedef long Fixed_Array[20]; -typedef string Var_Array [3]; - -struct TimeOfDay { - short hour; // 0 - 23 - short minute; // 0 - 59 - short second; // 0 - 59 -}; -interface Foo -{ - /// void return-type, no arguments - void op1(); - - /// void return-type, 1 "in" argument - void op2(in long value); - - /// long return-type, no arguments - long op3(); - - /// one-way version of op2 - oneway void op4(in long value); - - /// Operation that always raises an exception. - void op5() raises (FooException); - - /// Operation with the inout parameter. - boolean op6(in string user_name, - inout string message); - - oneway void test_unbounded_string_arg(in string message); - - oneway void test_bounded_string_arg(in string<20> message); - - oneway void test_fixed_array_arg(in Fixed_Array message); - - oneway void test_var_array_arg(in Var_Array messages); - - oneway void test_bounded_var_size_arg(in Bounded_Var_Size message); - - oneway void test_unbounded_var_size_arg(in Unbounded_Var_Size message); - - oneway void test_fixed_size_arg (in TimeOfDay t); - - oneway void test_special_basic_arg(in boolean value); - - oneway void test_objref_arg (in Callback cb); - - void test_fixed_size_arg_two_way (in TimeOfDay t); - - /// Operation with the object reference parameter. - void callback_object (in Callback cb); - - /// Operation that invoke remote operation on - // callback object. - void test_callback (); - - /// Client calls this last. It will shutdown the server. - void done(); -}; - - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/Foo_i.cpp b/TAO/examples/CSD_Strategy/ThreadPool4/Foo_i.cpp deleted file mode 100644 index e94e00c0226..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/Foo_i.cpp +++ /dev/null @@ -1,301 +0,0 @@ -// $Id$ -#include "Foo_i.h" -#include "OrbShutdownTask.h" -#include "ace/OS.h" - -Foo_i::Foo_i(const char* servant_name) -: value_(0), - count_op1_(0), - count_op2_(0), - count_op3_(0), - count_op4_(0), - count_op5_(0), - servant_name_(servant_name) -{ -} - - -Foo_i::~Foo_i() -{ -} - - -void -Foo_i::op1(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op1_; - // Sleep for 10 milliseconds (10,000 microseconds) - //ACE_OS::sleep(ACE_Time_Value(0,10000)); -} - - -void -Foo_i::op2(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op2_; - this->value_ = value; -} - - -CORBA::Long -Foo_i::op3(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op3_; - return this->value_; -} - - -void -Foo_i::op4(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op4_; - this->value_ = value; - - if (this->count_op4_ % 1 == 0) - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) op4() has been called %d times now. value == %d\n", - this->count_op4_, this->value_)); - } - - // Sleep for 10 milliseconds (10,000 microseconds) - //ACE_OS::sleep(ACE_Time_Value(0,10000)); -} - - -void -Foo_i::op5(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException, FooException)) -{ - ACE_DEBUG((LM_DEBUG, "(%P|%t) Foo_i::op5() - ENTER\n")); - ACE_DEBUG((LM_DEBUG, "(%P|%t) Foo_i::op5() - Increment counter.\n")); - unsigned newcount = ++this->count_op5_; - ACE_DEBUG((LM_DEBUG, "(%P|%t) Foo_i::op5() - Counter is now %d.\n", newcount)); - ACE_DEBUG((LM_DEBUG, "(%P|%t) Foo_i::op5() - EXIT - Raise a FooException.\n")); - ACE_THROW_SPEC (FooException()); -} - - -CORBA::Boolean -Foo_i::op6 ( - const char * user_name, - char *& message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_CString str(message); - str += user_name; - message = CORBA::string_dup (str.c_str ()); - return 1; -} - - -void -Foo_i::test_unbounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( -CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_unbounded_string_arg ") - ACE_TEXT("got unbounded string %s\n"), - message)); -} - - -void -Foo_i::test_bounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( -CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_bounded_string_arg ") - ACE_TEXT("got bounded string %s\n"), - message)); -} - - -void -Foo_i::test_fixed_array_arg ( - const ::Fixed_Array message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - for (CORBA::ULong i = 0; i < 20; i++) - { - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_fixed_array_arg ") - ACE_TEXT("got fixed_array[i] = %d\n"), - i, message[i])); - } -} - - -void -Foo_i::test_bounded_var_size_arg ( - const ::Bounded_Var_Size & message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_bounded_var_size_arg ") - ACE_TEXT("got var array chars %s\n"), - message.get_buffer ())); -} - - -void -Foo_i::test_unbounded_var_size_arg ( - const ::Unbounded_Var_Size & message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_unbounded_var_size_arg ") - ACE_TEXT("got var array chars %s\n"), - message.get_buffer ())); -} - - -void -Foo_i::test_fixed_size_arg ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_fixed_size_arg ") - ACE_TEXT("got timeofday %d:%d:%d\n"), - t.hour, t.minute, t.second)); -} - -void -Foo_i::test_fixed_size_arg_two_way ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_fixed_size_arg_two_way ") - ACE_TEXT("got timeofday %d:%d:%d\n"), - t.hour, t.minute, t.second)); -} - -void -Foo_i::test_var_array_arg ( - const ::Var_Array messages - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_var_array_arg ") - ACE_TEXT(" %s \n"), messages[0].in ())); - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_var_array_arg ") - ACE_TEXT(" %s \n"), messages[1].in ())); - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_var_array_arg ") - ACE_TEXT(" %s \n"), messages[2].in ())); -} - - -void -Foo_i::test_special_basic_arg ( - ::CORBA::Boolean value - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_special_basic_arg ") - ACE_TEXT(" got special basic arg: %d \n"), value)); -} - - -void -Foo_i::test_objref_arg ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - this->callback_ = Callback::_duplicate (cb); - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_objref_arg ") - ACE_TEXT(" got callback object. \n"))); -} - - -void -Foo_i::callback_object ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - this->callback_ = Callback::_duplicate (cb); -} - -void -Foo_i::test_callback ( - ACE_ENV_SINGLE_ARG_DECL -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - if (CORBA::is_nil (this->callback_.in ())) - { - ACE_THROW_SPEC (TestException ()); - } - else - { - this->callback_->test_method (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } -} - - -void -Foo_i::done(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - static ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned> num_clients = 2; - - num_clients --; - - if (num_clients == 0) - { - if (TheOrbShutdownTask::instance()->open(0) != 0) - { - ACE_ERROR((LM_ERROR, "(%P|%t)Foo_i::done: " - "failed to create orb shutdown thread.\n")); - } - } -} diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/Foo_i.h b/TAO/examples/CSD_Strategy/ThreadPool4/Foo_i.h deleted file mode 100644 index f6aaffa4a7f..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/Foo_i.h +++ /dev/null @@ -1,158 +0,0 @@ -// $Id$ -#ifndef FOO_I_H -#define FOO_I_H - -#include "FooS.h" -#include "CallbackC.h" -#include "ace/SString.h" -#include "ace/CORBA_macros.h" -#include "tao/Environment.h" - -class FooServantList; - -class Foo_i : public virtual POA_Foo, - public virtual PortableServer::ServantBase -{ - public: - - Foo_i(const char* servant_name); - virtual ~Foo_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual CORBA::Boolean op6 ( - const char * user_name, - char *& message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_unbounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_bounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_fixed_array_arg ( - const ::Fixed_Array message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_var_array_arg ( - const ::Var_Array messages - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_bounded_var_size_arg ( - const ::Bounded_Var_Size & message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_unbounded_var_size_arg ( - const ::Unbounded_Var_Size & message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_fixed_size_arg ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_fixed_size_arg_two_way ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_special_basic_arg ( - ::CORBA::Boolean value - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_objref_arg ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void callback_object ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_callback ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - - private: - - CORBA::Long value_; - - unsigned count_op1_; - unsigned count_op2_; - unsigned count_op3_; - unsigned count_op4_; - unsigned count_op5_; - - ACE_CString servant_name_; - Callback_var callback_; -}; - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/ServerApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool4/ServerApp.cpp deleted file mode 100644 index 9db3f5c7785..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/ServerApp.cpp +++ /dev/null @@ -1,357 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "Foo_i.h" -#include "Callback_i.h" -#include "ClientTask.h" -#include "OrbShutdownTask.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" -#include "tao/Messaging/Messaging.h" -#include "tao/AnyTypeCode/Any.h" - - -ServerApp::ServerApp() -: synch_with_server_ (0) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheOrbShutdownTask::instance()->orb (this->orb_.in ()); - - if (synch_with_server_) - { - CORBA::Object_var manager_object = - orb_->resolve_initial_references("ORBPolicyManager" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - CORBA::PolicyManager_var policy_manager - = CORBA::PolicyManager::_narrow(manager_object.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil (policy_manager.in ())) - { - ACE_ERROR ((LM_ERROR, - " (%P|%t) Panic: nil PolicyManager\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - CORBA::Any policy_value; - policy_value <<= Messaging::SYNC_WITH_SERVER; - CORBA::PolicyList policies(1); - policies.length(1); - - policies[0] = - orb_->create_policy (Messaging::SYNC_SCOPE_POLICY_TYPE, - policy_value - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - policy_manager->set_policy_overrides (policies, - CORBA::ADD_OVERRIDE - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - policies[0]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - CORBA::Object_var obj - = orb_->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(1); - policies.length(1); - - policies[0] = root_poa->create_id_assignment_policy(PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - PortableServer::POA_var child_poa_1 = root_poa->create_POA("ChildPoa_1", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa_1.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the ChildPoa_1.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var child_poa_2 = root_poa->create_POA("ChildPoa_2", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa_2.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the ChildPoa_2.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - policies[0]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - // We need create multiple working threads otherwise it would deadlock - // with the callback test. - csd_tp_strategy->set_num_threads(2); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa_1.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa 1.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - ACE_CHECK_RETURN (-1); - - Foo_var foo1 = this->create_foo(child_poa_1.in(), - "foo_applied_strategy" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - Foo_var foo2 = this->create_foo(child_poa_2.in(), - "foo_not_applied_strategy" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - Callback_var callback1 - = this->create_callback(child_poa_1.in(), - "callback_applied_strategy" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - Callback_var callback2 - = this->create_callback(child_poa_2.in(), - "callback_not_applied_strategy" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready. Running the ORB event loop.\n")); - - // Wait for the custom stretegy launch the dispatching threads. - ACE_OS::sleep (2); - - ClientTask client1 (foo1.in (), callback1.in ()); - if (client1.open() != 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to open the collocated client1.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - ClientTask client2 (foo2.in (), callback2.in ()); - if (client2.open() != 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to open the collocated client2.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Run the ORB event loop. - orb_->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp ORB has stopped running.\n")); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) Wait for the OrbShutdownTask.\n")); - - TheOrbShutdownTask::instance()->wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) Wait for the collocated client task.\n")); - - client1.wait (); - client2.wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) Stop the CSD strategy.\n")); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - // Tear-down the root poa and orb_. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb_->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "s"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 's': - this->synch_with_server_ = 1; - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - } - - return 0; -} - - -Foo_ptr -ServerApp::create_foo ( - PortableServer::POA_ptr poa, - const char* servant_name - ACE_ENV_ARG_DECL) -{ - PortableServer::ServantBase_var servant - = new Foo_i(servant_name); - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId(servant_name); - - poa->activate_object_with_id(id.in(), servant.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Foo::_nil ()); - - CORBA::Object_var obj = poa->id_to_reference(id.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Foo::_nil ()); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to activate servant (%s).\n", - servant_name)); - ACE_THROW_RETURN (TestException(), Foo::_nil ()); - } - - Foo_var foo = Foo::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Foo::_nil ()); - - return foo._retn (); -} - -Callback_ptr -ServerApp::create_callback( - PortableServer::POA_ptr poa, - const char* servant_name - ACE_ENV_ARG_DECL) -{ - PortableServer::ServantBase_var servant - = new Callback_i(); - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId("callback"); - - poa->activate_object_with_id(id.in(), servant.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Callback::_nil ()); - - CORBA::Object_var obj = poa->id_to_reference(id.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Callback::_nil ()); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to activate servant (%s).\n", - servant_name)); - ACE_THROW_RETURN (TestException(), Callback::_nil ()); - } - - Callback_var callback = Callback::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Callback::_nil ()); - - return callback._retn (); -} - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-s <synch_with_server>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool4/run_test.pl b/TAO/examples/CSD_Strategy/ThreadPool4/run_test.pl deleted file mode 100755 index 1a39bd75ae2..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool4/run_test.pl +++ /dev/null @@ -1,39 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$status = 0; - -$synch_with_server_option = ""; - -if ($ARGV[0] eq 'synch_with_server') { - $synch_with_server_option = "-s"; -} -elsif ($ARGV[0] eq '') { - #synch with transport -} -else { - print STDERR "ERROR: invalid parameter $ARGV[0] \n"; - exit 1; -} - -$SV = new PerlACE::Process ("server_main", "$synch_with_server_option"); - -$SV->Spawn (); - - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - - -exit $status; diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/CSD_Test_ThreadPool5.mpc b/TAO/examples/CSD_Strategy/ThreadPool5/CSD_Test_ThreadPool5.mpc deleted file mode 100644 index a5c323adc01..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/CSD_Test_ThreadPool5.mpc +++ /dev/null @@ -1,36 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_threadpool, taoexe, portableserver { - exename = server_main - - Source_Files { - server_main.cpp - Foo_i.cpp - FooC.cpp - FooS.cpp - Callback_i.cpp - CallbackC.cpp - CallbackS.cpp - ServerApp.cpp - ClientTask.cpp - FooServantList.cpp - OrbTask.cpp - OrbShutdownTask.cpp - } -} - -project(*Client): csd_threadpool, taoexe, portableserver { - exename = client_main - - Source_Files { - client_main.cpp - Callback_i.cpp - CallbackC.cpp - CallbackS.cpp - FooC.cpp - ClientTask.cpp - ClientApp.cpp - } -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/Callback_i.h b/TAO/examples/CSD_Strategy/ThreadPool5/Callback_i.h deleted file mode 100644 index 4183955f22f..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/Callback_i.h +++ /dev/null @@ -1,26 +0,0 @@ -// $Id$ -#ifndef CALLBACK_I_H -#define CALLBACK_I_H - -#include "CallbackS.h" - - -class Callback_i : public virtual POA_Callback, - public virtual PortableServer::ServantBase -{ - public: - - Callback_i(); - - virtual ~Callback_i(); - - virtual void test_method ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); -}; - - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/ClientApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool5/ClientApp.cpp deleted file mode 100644 index 02db9e8a2f2..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/ClientApp.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// $Id$ -#include "ClientApp.h" -#include "Callback_i.h" -#include "ClientTask.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - - -ClientApp::ClientApp() -{ -} - - -ClientApp::~ClientApp() -{ -} - - -int -ClientApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - CORBA::ORB_var orb - = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - CORBA::Object_var obj - = orb->string_to_object(this->ior_.c_str() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to convert IOR string to obj ref.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - Foo_var foo = Foo::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(foo.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to Foo interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Create the callback object using the child poa with the custom - // strategy. - obj = orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(0); - policies.length(0); - - PortableServer::POA_var child_poa - = root_poa->create_POA("ChildPoa", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the child POA.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - csd_tp_strategy->set_num_threads(1); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - ACE_CHECK_RETURN (-1); - - // Create the servant object. - Callback_i* servant = new Callback_i (); - - // local smart pointer variable to deal with releasing the reference - // to the servant object when the smart pointer object falls out of scope. - PortableServer::ServantBase_var owner_transfer(servant); - - // Activate the servant using the Child POA. - PortableServer::ObjectId_var oid - = child_poa->activate_object(servant - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Obtain the object reference. - obj = child_poa->servant_to_reference(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to activate servant (Callback_i).\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - Callback_var callback = Callback::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ClientTask client_task(orb.in (), foo.in (), callback.in ()); - - if (client_task.open () != 0) - { - ACE_THROW_RETURN (TestException(), -1); - } - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientApp is ready.\n")); - - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - client_task.wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientApp is destroying the Root POA.\n")); - - // Tear-down the root poa and orb. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientApp is destroying the ORB.\n")); - - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientApp has completed running successfully.\n")); - - return 0; -} - - -int -ClientApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "i:"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'i': - this->ior_ = get_opts.opt_arg(); - break; - - case '?': - this->usage_statement(); - return 1; - default: - this->usage_statement(); - return -1; - } - } - - return 0; -} - - -void -ClientApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-i <ior>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/ClientTask.cpp b/TAO/examples/CSD_Strategy/ThreadPool5/ClientTask.cpp deleted file mode 100644 index db9ed7c43f1..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/ClientTask.cpp +++ /dev/null @@ -1,263 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file ClientTask.cpp - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#include "ClientTask.h" -#include "ace/SString.h" -#include "ace/OS.h" - - -ClientTask::ClientTask(CORBA::ORB_ptr orb, - Foo_ptr foo, - Callback_ptr callback, - bool collocated) -: orb_ (CORBA::ORB::_duplicate (orb)), - foo_(Foo::_duplicate(foo)), - callback_(Callback::_duplicate(callback)), - collocated_ (collocated) -{ -} - - -ClientTask::~ClientTask() -{ -} - - -int -ClientTask::open(void*) -{ - if (this->activate(THR_NEW_LWP | THR_JOINABLE, 1) != 0) - { - // Assumes that when activate returns non-zero return code that - // no threads were activated. - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) ClientTask failed to activate " - "the client thread.\n"), - -1); - } - - return 0; -} - - -int -ClientTask::svc() -{ - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc start\n")); - - ACE_TRY_NEW_ENV - { - // Make sure the connection is established before making - // remote invocations. - if (this->validate_connection () == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t)ClientTask::svc " \ - "client connect failed.\n")); - return -1; - } - - for (CORBA::Long i = 1; i <= 100; i++) - { - // Simple Two-way calls. - this->foo_->op1(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->op2(i ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Long value = this->foo_->op3(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> Value retrieved from op3() == %d\n", - value)); - - for (CORBA::ULong j = 1; j <= 5; j++) - { - this->foo_->op4(495 + (i * 5) + j ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_TRY_EX (op5) - { - ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> Invoke op5()\n")); - this->foo_->op5(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK_EX (op5); - ACE_DEBUG((LM_DEBUG, "(%P|%t) ===> No exception raised from op5(). :-(\n")); - } - ACE_CATCH (FooException, ex) - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> Caught FooException - as expected.\n")); - - } - ACE_ENDTRY; - - // Two-Way calls with inout parameters. - CORBA::String_var message = CORBA::string_dup( "Hello! " ); - CORBA::Boolean result - = this->foo_->op6( "TAO User", message.inout() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (result) - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> Message from op6() == %s\n", - message.in ())); - } - else - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ===> op6() returned false.\n")); - } - - // Callback test. - this->foo_->callback_object (this->callback_.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->test_callback (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // One-Way calls with various arguments. - CORBA::String_var ub_string = CORBA::string_dup( "UNBOUNDED STRING" ); - this->foo_->test_unbounded_string_arg (ub_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::String_var bd_string = CORBA::string_dup( "BOUNDED STRING" ); - this->foo_->test_bounded_string_arg (bd_string.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Fixed_Array fixed_array; - - for (CORBA::ULong m = 0; m < 20; m ++) - { - fixed_array[m] = i + m; - } - - this->foo_->test_fixed_array_arg (fixed_array ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Var_Array var_array; - var_array[0] = CORBA::string_dup( "STRING 1" ); - var_array[1] = CORBA::string_dup( "STRING 2" ); - var_array[2] = CORBA::string_dup( "STRING 3" ); - this->foo_->test_var_array_arg (var_array ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Bounded_Var_Size_var bd_var_size_string = new Bounded_Var_Size(); - const char* buffer1 = "BOUNDED VAR SIZE CHAR"; - bd_var_size_string->replace (bd_var_size_string->maximum (), - ACE_OS::strlen (buffer1) + 1, - (CORBA::Char*)buffer1); - this->foo_->test_bounded_var_size_arg (bd_var_size_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - const char* buffer2 = "UNBOUNDED VAR SIZE CHAR"; - Unbounded_Var_Size_var ub_var_size_string = new Unbounded_Var_Size(100); - ub_var_size_string->replace (ub_var_size_string->maximum (), - ACE_OS::strlen (buffer2) + 1, - (CORBA::Char*)buffer2); - this->foo_->test_unbounded_var_size_arg (ub_var_size_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - TimeOfDay t; - t.hour = 12; - t.minute = 30; - t.second = 10; - this->foo_->test_fixed_size_arg (t ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->test_fixed_size_arg_two_way (t ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Boolean special_value = 1; - this->foo_->test_special_basic_arg (special_value ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->foo_->test_objref_arg (this->callback_.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc - Invoke foo->done()\n")); - - this->foo_->done (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc - Back from foo->done()\n")); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Caught exception in ClientTask::svc:"); - } - ACE_CATCHALL - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Unknown (...) exception caught in ClientTask::svc()\n")); - } - ACE_ENDTRY; - - if (! collocated_) - { - ACE_OS::sleep (2); - this->orb_->shutdown(0); - } - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::svc end\n")); - - return 0; -} - - -int -ClientTask::close(u_long) -{ - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ClientTask::close() - enter/exit\n")); - return 0; -} - - -bool -ClientTask::validate_connection () -{ - for (CORBA::ULong j = 0; j != 1000; ++j) - { - ACE_TRY_NEW_ENV - { -#if (TAO_HAS_CORBA_MESSAGING == 1) - CORBA::PolicyList_var unused; - this->foo_->_validate_connection (unused - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; -#else - this->foo_->_is_a ("Not_An_IDL_Type" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; -#endif /* TAO_HAS_MESSAGING == 1 */ - return true; - } - ACE_CATCHANY - { - } - ACE_ENDTRY; - } - - return false; -} diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/Foo.idl b/TAO/examples/CSD_Strategy/ThreadPool5/Foo.idl deleted file mode 100644 index ad4f1cc77cb..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/Foo.idl +++ /dev/null @@ -1,73 +0,0 @@ -// $Id$ -#ifndef FOO_IDL -#define FOO_IDL - -#include "Callback.idl" - -exception FooException {}; -exception TestException {}; - -typedef sequence<char, 32> Bounded_Var_Size; -typedef sequence<char> Unbounded_Var_Size; -typedef long Fixed_Array[20]; -typedef string Var_Array [3]; - -struct TimeOfDay { - short hour; // 0 - 23 - short minute; // 0 - 59 - short second; // 0 - 59 -}; -interface Foo -{ - /// void return-type, no arguments - void op1(); - - /// void return-type, 1 "in" argument - void op2(in long value); - - /// long return-type, no arguments - long op3(); - - /// one-way version of op2 - oneway void op4(in long value); - - /// Operation that always raises an exception. - void op5() raises (FooException); - - /// Operation with the inout parameter. - boolean op6(in string user_name, - inout string message); - - oneway void test_unbounded_string_arg(in string message); - - oneway void test_bounded_string_arg(in string<20> message); - - oneway void test_fixed_array_arg(in Fixed_Array message); - - oneway void test_var_array_arg(in Var_Array messages); - - oneway void test_bounded_var_size_arg(in Bounded_Var_Size message); - - oneway void test_unbounded_var_size_arg(in Unbounded_Var_Size message); - - oneway void test_fixed_size_arg (in TimeOfDay t); - - oneway void test_special_basic_arg(in boolean value); - - oneway void test_objref_arg (in Callback cb); - - void test_fixed_size_arg_two_way (in TimeOfDay t); - - /// Operation with the object reference parameter. - void callback_object (in Callback cb); - - /// Operation that invoke remote operation on - // callback object. - void test_callback (); - - /// Client calls this last. It will shutdown the server. - void done(); -}; - - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/Foo_i.cpp b/TAO/examples/CSD_Strategy/ThreadPool5/Foo_i.cpp deleted file mode 100644 index 073c0d85283..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/Foo_i.cpp +++ /dev/null @@ -1,312 +0,0 @@ -// $Id$ -#include "Foo_i.h" -#include "FooServantList.h" -#include "ace/OS.h" - -Foo_i::Foo_i(const char* servant_name,FooServantList* mgr) - : value_(0), - count_op1_(0), - count_op2_(0), - count_op3_(0), - count_op4_(0), - count_op5_(0), - servant_name_(servant_name), - mgr_(mgr), - active_ (true) -{ -} - - -Foo_i::~Foo_i() -{ -} - - -void -Foo_i::op1(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op1_; - // Sleep for 10 milliseconds (10,000 microseconds) - //ACE_OS::sleep(ACE_Time_Value(0,10000)); -} - - -void -Foo_i::op2(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op2_; - this->value_ = value; -} - - -CORBA::Long -Foo_i::op3(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op3_; - - if (this->count_op3_ == 30) - { - this->mgr_->deactivate_servant (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - - return this->value_.value (); -} - - -void -Foo_i::op4(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - ++this->count_op4_; - this->value_ = value; - - if (this->count_op4_.value () % 1 == 0) - { - ACE_DEBUG((LM_DEBUG, - "(%P|%t) op4() has been called %d times now. value == %d\n", - this->count_op4_.value (), this->value_.value ())); - } - - // Sleep for 10 milliseconds (10,000 microseconds) - //ACE_OS::sleep(ACE_Time_Value(0,10000)); -} - - -void -Foo_i::op5(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException, FooException)) -{ - ++this->count_op5_; - ACE_THROW (FooException()); -} - - -CORBA::Boolean -Foo_i::op6 ( - const char * user_name, - char *& message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_CString str(message); - str += user_name; - message = CORBA::string_dup (str.c_str ()); - return 1; -} - - -void -Foo_i::test_unbounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( -CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_unbounded_string_arg ") - ACE_TEXT("got unbounded string %s\n"), - message)); -} - - -void -Foo_i::test_bounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( -CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_bounded_string_arg ") - ACE_TEXT("got bounded string %s\n"), - message)); -} - - -void -Foo_i::test_fixed_array_arg ( - const ::Fixed_Array message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - for (CORBA::ULong i = 0; i < 20; i++) - { - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_fixed_array_arg ") - ACE_TEXT("got fixed_array[i] = %d\n"), - i, message[i])); - } -} - - -void -Foo_i::test_bounded_var_size_arg ( - const ::Bounded_Var_Size & message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_bounded_var_size_arg ") - ACE_TEXT("got var array chars %s\n"), - message.get_buffer ())); -} - - -void -Foo_i::test_unbounded_var_size_arg ( - const ::Unbounded_Var_Size & message - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_unbounded_var_size_arg ") - ACE_TEXT("got var array chars %s\n"), - message.get_buffer ())); -} - - -void -Foo_i::test_fixed_size_arg ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_fixed_size_arg ") - ACE_TEXT("got timeofday %d:%d:%d\n"), - t.hour, t.minute, t.second)); -} - -void -Foo_i::test_fixed_size_arg_two_way ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_fixed_size_arg_two_way ") - ACE_TEXT("got timeofday %d:%d:%d\n"), - t.hour, t.minute, t.second)); -} - -void -Foo_i::test_var_array_arg ( - const ::Var_Array messages - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_var_array_arg ") - ACE_TEXT(" %s \n"), messages[0].in ())); - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_var_array_arg ") - ACE_TEXT(" %s \n"), messages[1].in ())); - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_var_array_arg ") - ACE_TEXT(" %s \n"), messages[2].in ())); -} - - -void -Foo_i::test_special_basic_arg ( - ::CORBA::Boolean value - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_special_basic_arg ") - ACE_TEXT(" got special basic arg: %d \n"), value)); -} - - -void -Foo_i::test_objref_arg ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - this->callback_ = Callback::_duplicate (cb); - ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_i::test_objref_arg ") - ACE_TEXT(" got callback object. \n"))); -} - - -void -Foo_i::callback_object ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_NOT_USED -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - this->callback_ = Callback::_duplicate (cb); -} - -void -Foo_i::test_callback ( - ACE_ENV_SINGLE_ARG_DECL -) -ACE_THROW_SPEC (( - CORBA::SystemException -)) -{ - if (CORBA::is_nil (this->callback_.in ())) - { - ACE_THROW_SPEC (TestException ()); - } - else - { - this->callback_->test_method (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } -} - - -void -Foo_i::done(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->mgr_->client_done(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -Foo_i::active (bool flag) -{ - active_ = flag; -} - - -bool -Foo_i::active () -{ - return active_.value (); -} - - diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/Foo_i.h b/TAO/examples/CSD_Strategy/ThreadPool5/Foo_i.h deleted file mode 100644 index ace8731db65..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/Foo_i.h +++ /dev/null @@ -1,166 +0,0 @@ -// $Id$ -#ifndef FOO_I_H -#define FOO_I_H - -#include "FooS.h" -#include "CallbackC.h" -#include "ace/SString.h" - -class FooServantList; - - -class Foo_i : public virtual POA_Foo, - public virtual PortableServer::ServantBase -{ - public: - - Foo_i(const char* servant_name, FooServantList* mgr); - virtual ~Foo_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual CORBA::Boolean op6 ( - const char * user_name, - char *& message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_unbounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_bounded_string_arg ( - const char * message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_fixed_array_arg ( - const ::Fixed_Array message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_var_array_arg ( - const ::Var_Array messages - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_bounded_var_size_arg ( - const ::Bounded_Var_Size & message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_unbounded_var_size_arg ( - const ::Unbounded_Var_Size & message - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_fixed_size_arg ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_fixed_size_arg_two_way ( - const ::TimeOfDay & t - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_special_basic_arg ( - ::CORBA::Boolean value - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_objref_arg ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void callback_object ( - ::Callback_ptr cb - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void test_callback ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - void active (bool flag); - - bool active (); - - private: - - typedef ACE_Atomic_Op <ACE_SYNCH_MUTEX, CORBA::Long> AtomicLong; - typedef ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned> AtomicUnsigned; - typedef ACE_Atomic_Op <ACE_SYNCH_MUTEX, bool> AtomicBool; - - AtomicLong value_; - AtomicUnsigned count_op1_; - AtomicUnsigned count_op2_; - AtomicUnsigned count_op3_; - AtomicUnsigned count_op4_; - AtomicUnsigned count_op5_; - - ACE_CString servant_name_; - FooServantList* mgr_; - AtomicBool active_; - Callback_var callback_; -}; - - -#endif diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/ServerApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool5/ServerApp.cpp deleted file mode 100644 index 2e996f83e15..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/ServerApp.cpp +++ /dev/null @@ -1,354 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "OrbTask.h" -#include "FooServantList.h" -#include "ClientTask.h" -#include "OrbShutdownTask.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - -ServerApp::ServerApp() - : ior_filename_("foo"), - num_servants_(1), - num_csd_threads_ (1), - num_clients_(1), - num_orb_threads_ (1), - collocated_test_ (0), - servant_to_deactivate_ (-1) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheOrbShutdownTask::instance()->orb (orb.in ()); - - CORBA::Object_var obj - = orb->resolve_initial_references("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(1); - policies.length(1); - - policies[0] - = root_poa->create_id_assignment_policy(PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - PortableServer::POA_var child_poa - = root_poa->create_POA("ChildPoa", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the child POA.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - policies[0]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - csd_tp_strategy->set_num_threads(this->num_csd_threads_); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - ACE_CHECK_RETURN (-1); - - FooServantList servants(this->ior_filename_.c_str(), - this->num_servants_, - this->num_clients_, - this->collocated_test_, - this->servant_to_deactivate_, - orb.in()); - - // Activate the POA Manager before start the ClientTask thread so that - // we do not need coordinate the ClientTask and main thread for the - // collocated test. - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - servants.create_and_activate(orb.in (), - child_poa.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready.\n")); - - // If the num_orb_threads_ is exactly one, then just use the current - // (mainline) thread to run the ORB event loop. - if (this->num_orb_threads_ == 1) - { - // Since the num_orb_threads_ is exactly one, we just use the current - // (mainline) thread to run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - else - { - // The num_orb_threads_ is greater than 1, so we will use an OrbTask - // (active object) to run the ORB event loop in (num_orb_threads_ - 1) - // threads. We use the current (mainline) thread as the other thread - // running the ORB event loop. - OrbTask orb_task(orb.in(), this->num_orb_threads_ - 1); - - // Activate the OrbTask worker threads - if (orb_task.open() != 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to open the OrbTask.\n")); - ACE_THROW_RETURN (TestException(), -1); - } - - // This will use the current (mainline) thread to run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Now that the current thread has unblocked from running the orb, - // make sure to wait for all of the worker threads to complete. - orb_task.wait(); - } - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is waiting for OrbShutdownTask.\n")); - TheOrbShutdownTask::instance()->wait (); - - // Sleep for 2 second to let the done() two-way call complete - // before cleanup. - ACE_OS::sleep (2); - - if (collocated_test_) - { - servants.collocated_client ()->wait (); - } - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - // Tear-down the root poa and orb. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:c:t:l:d:n:"); - - int c; - int tmp; - - while ((c = get_opts()) != -1) - { - int parse_error = 0; - - switch (c) - { - case 'p': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 's': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -s must be followed by an integer " - "value greater than 0.\n")); - parse_error = 1; - } - - this->num_servants_ = tmp; - break; - - case 'c': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -c must be followed by an integer " - "value greater than 0.\n")); - parse_error = 1; - } - - this->num_clients_ = tmp; - break; - - case 't': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -t must be followed by an integer " - "value greater than 0.\n")); - parse_error = 1; - } - - this->num_orb_threads_ = tmp; - break; - - case 'n': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -n must be followed by an integer " - "value greater than 0.\n")); - parse_error = 1; - } - - this->num_csd_threads_ = tmp; - break; - - case 'l': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -l must be followed by an integer " - "value greater than -1.\n")); - parse_error = 1; - } - - this->collocated_test_ = tmp; - break; - - case 'd': - tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -d must be followed by an integer " - "value >= 0.\n")); - parse_error = 1; - } - - this->servant_to_deactivate_ = tmp; - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (parse_error != 0) - { - this->usage_statement(); - return parse_error; - } - } - - // The deadlock will happen with the collocated callback test - // when we have one working thread, so create at least one more - // working thread would resolve the deadlock. - if (this->collocated_test_ == 1 && this->num_csd_threads_ == 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. The num_csd_threads_ should be " - ">= 1.\n")); - return -1; - } - - return 0; -} - - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "(%P|%t) usage: %s \n" - "\t[-p <ior_filename_prefix>] \n" - "\t[-s <num_servants>] \n" - "\t[-c <num_clients>] \n" - "\t[-n <num_csd_threads>] \n" - "\t[-t <num_orb_threads>] \n" - "\t[-l <collocation_test>] \n" - "\t[-d <servant_to_deactivate>] \n" - "Default ior_filename_prefix is 'foo'.\n" - "Default num_servants is 1.\n" - "Default num_clients is 1.\n" - "Default num_orb_threads is 1.\n" - "Default collocation_test flag is 0.\n" - "Default servant_to_deactivate is -1 means not deactivate servant.\n" - " 0 means deactivate all servant. \n" - " >0 means the index (servant_to_deactivate-1) of the servant in the servant list.\n", - this->exe_name_.c_str ())); -} diff --git a/TAO/examples/CSD_Strategy/ThreadPool5/run_test.pl b/TAO/examples/CSD_Strategy/ThreadPool5/run_test.pl deleted file mode 100755 index 4ea3513ac50..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool5/run_test.pl +++ /dev/null @@ -1,126 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$status = 0; - - -$iorfname_prefix = "server"; -$num_servants=1; -$num_clients_per_servant=40; -$num_orb_threads=1; -$num_csd_threads=1; -$collocated_test=0; -$servant_cancellation_option=""; - -if ($ARGV[0] eq 'collocated') { - # 1 servant, 1 collocated client, 1 orb thread, 2 strategy working threads - $num_clients_per_servant=1; - $collocated_test=1; - $num_csd_threads=2; -} -elsif ($ARGV[0] eq 'multiple_servants') { - # multiple servants and single orb thread. - # 10 servant, 40 client, 1 orb thread, 10 strategy working threads - $num_servants=10; - $num_csd_threads=10; - $num_clients_per_servant=4; -} -elsif ($ARGV[0] eq 'multiple_orb_threads') { - # multiple servants and multiple orb threads. - # 10 servant, 40 client, 4 orb thread, 10 strategy working threads - $num_servants=10; - $num_csd_threads=10; - $num_clients_per_servant=4; - $num_orb_threads=4; -} -elsif ($ARGV[0] eq 'cancel_servant') { - # Cancel one servant and leave the other alive. - # 2 servant, 10 client, 5 orb thread, 1 strategy working threads - $num_clients_per_servant=5; - $num_servants=2; - $num_csd_threads=2; - $num_orb_threads=5; - $servant_cancellation_option = " -d 1 "; -} -elsif ($ARGV[0] eq '') { - # default test - 1 servant, 40 clients , 1 orb thread, 1 csd thread -} -else { - print STDERR "ERROR: invalid parameter $ARGV[0] \n"; - exit 1; -} - -$num_clients=$num_servants * $num_clients_per_servant; - -#Delete old ior files. -for (my $i = 0; $i < $num_servants; $i++) { - $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process ("server_main", - "-p $iorfname_prefix -s $num_servants " - . "-c $num_clients -t $num_orb_threads -n $num_csd_threads " - . "-l $collocated_test $servant_cancellation_option"); - -$SV->Spawn (); - -# Wait for the servant ior files created by server. -for (my $i = 0; $i < $num_servants; $i++) { - $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - - if (PerlACE::waitforfile_timed ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; - } -} - -$count = 0; - -if ($collocated_test == 0) { - for (my $i = 0; $i < $num_servants; $i++) { - for ($j = 0; $j < $num_clients_per_servant; $j++) { - $CLS[$count] = new PerlACE::Process ("client_main", " -i file://$iorfile[$i]"); - $CLS[$count]->Spawn (); - $count ++; - } - } - - for (my $i = 0; $i < $num_clients; $i++) { - $client = $CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } - } -} - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for (my $i = 0; $i < $num_servants; $i++) { - $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/examples/CSD_Strategy/ThreadPool6/CSD_Test_ThreadPool6.mpc b/TAO/examples/CSD_Strategy/ThreadPool6/CSD_Test_ThreadPool6.mpc deleted file mode 100644 index fc53a3a81c2..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool6/CSD_Test_ThreadPool6.mpc +++ /dev/null @@ -1,25 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_threadpool, taoexe, portableserver, minimum_corba { - exename = server_main - idlflags -= -Sc - - Source_Files { - Foo_i.cpp - ServerApp.cpp - server_main.cpp - OrbShutdownTask.cpp - } -} - -project(*Client): taoexe, anytypecode { - exename = client_main - - Source_Files { - FooC.cpp - ClientApp.cpp - client_main.cpp - } -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool6/ServerApp.cpp b/TAO/examples/CSD_Strategy/ThreadPool6/ServerApp.cpp deleted file mode 100644 index 08584619c8a..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool6/ServerApp.cpp +++ /dev/null @@ -1,240 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "Foo_i.h" -#include "FooS_T.h" -#include "OrbShutdownTask.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - -ServerApp::ServerApp() -: ior_filename_ ("server.ior") -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheOrbShutdownTask::instance()->orb (orb.in ()); - - CORBA::Object_var obj - = orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(obj.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to resolve initial ref for 'RootPOA'.\n")); - ACE_THROW_RETURN (TestException(), -1);; - } - - PortableServer::POA_var root_poa - = PortableServer::POA::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(root_poa.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to narrow obj ref to POA interface.\n")); - ACE_THROW_RETURN (TestException(), -1);; - } - - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA. - CORBA::PolicyList policies(1); - policies.length(1); - - policies[0] = - root_poa->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - PortableServer::POA_var child_poa - = root_poa->create_POA("ChildPoa", - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(child_poa.in())) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to create the child POA.\n")); - ACE_THROW_RETURN (TestException(), -1);; - } - - policies[0]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_tp_strategy = - new TAO::CSD::TP_Strategy(); - - // Tell the strategy to apply itself to the child poa. - if (csd_tp_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t) ERROR [ServerApp::run()]: " - "Failed to apply custom dispatching strategy to child poa.\n")); - ACE_THROW_RETURN (TestException(), -1);; - } - ACE_CHECK_RETURN (-1); - - // Create the Foo_i object. - Foo_i foo_i (this->num_clients_); - - // Create tie object with the Foo_i object. - POA_Foo_tie<Foo_i> foo_tie_i (foo_i, child_poa.in ()); - - // Get Object Reference for the foo_tie_i object. - Foo_var foo = foo_tie_i._this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil(foo.in())) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Failed to activate servant foo_tie_i.\n")); - ACE_THROW_RETURN (TestException(), -1);; - } - - // Stringify the object reference - CORBA::String_var ior - = orb->object_to_string(foo.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Write the stringified object reference to the ior file. - FILE* ior_file = ACE_OS::fopen(this->ior_filename_.c_str(), "w"); - - if (ior_file == 0) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Cannot open output file for writing IOR: %s", - this->ior_filename_.c_str())); - ACE_THROW_RETURN (TestException(), -1);; - } - - ACE_OS::fprintf(ior_file, "%s", ior.in ()); - ACE_OS::fclose(ior_file); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready. Running the ORB event loop.\n")); - - // Run the ORB event loop. - orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp ORB has stopped running. " - "Stop the CSD strategy.\n")); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is waiting for OrbShutdownTask.\n")); - TheOrbShutdownTask::instance()->wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - // Sleep for 2 second to let the done() two-way call complete - // before cleanup. - ACE_OS::sleep (2); - - // Tear-down the root poa and orb. - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "o:n:"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'o': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 'n': - { - int tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - this->usage_statement (); - return -1; - } - - this->num_clients_ = tmp; - } - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - } - - return 0; -} - - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-o <ior_filename>]\n" - "\t[-n <num_clients>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - diff --git a/TAO/examples/CSD_Strategy/ThreadPool6/run_test.pl b/TAO/examples/CSD_Strategy/ThreadPool6/run_test.pl deleted file mode 100755 index ded41bfc848..00000000000 --- a/TAO/examples/CSD_Strategy/ThreadPool6/run_test.pl +++ /dev/null @@ -1,55 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$iorfile = PerlACE::LocalFile ("server.ior"); -unlink $iorfile; -$status = 0; - -$num_clients=1; - -$SV = new PerlACE::Process ("server_main", "-o $iorfile -n $num_clients"); - -$SV->Spawn (); - -if (PerlACE::waitforfile_timed ($iorfile, - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; -} - -for ($i = 0; $i < $num_clients; $i++) { - - @CLS[$i] = new PerlACE::Process ("client_main", " -i file://$iorfile"); - - @CLS[$i]->Spawn (); -} - -for ($i = 0; $i < $num_clients; $i++) { - - $client = @CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -unlink $iorfile; - -exit $status; diff --git a/TAO/examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am b/TAO/examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am index ebb83cf1783..386c0449d09 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am +++ b/TAO/examples/Kokyu_dsrt_schedulers/fp_example/Makefile.am @@ -59,8 +59,7 @@ fp_client_CPPFLAGS = \ -I$(TAO_ROOT) \ -I$(TAO_BUILDDIR) \ -I$(ACE_ROOT)/Kokyu \ - -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers \ - -I$(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers + -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers fp_client_SOURCES = \ client.cpp \ @@ -127,8 +126,7 @@ fp_server_CPPFLAGS = \ -I$(TAO_ROOT) \ -I$(TAO_BUILDDIR) \ -I$(ACE_ROOT)/Kokyu \ - -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers \ - -I$(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers + -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers fp_server_SOURCES = \ server.cpp \ diff --git a/TAO/examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am b/TAO/examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am index 1a9364c4244..ec056f1b1dd 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am +++ b/TAO/examples/Kokyu_dsrt_schedulers/mif_example/Makefile.am @@ -59,8 +59,7 @@ mif_client_CPPFLAGS = \ -I$(TAO_ROOT) \ -I$(TAO_BUILDDIR) \ -I$(ACE_ROOT)/Kokyu \ - -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers \ - -I$(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers + -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers mif_client_SOURCES = \ client.cpp \ @@ -127,8 +126,7 @@ mif_server_CPPFLAGS = \ -I$(TAO_ROOT) \ -I$(TAO_BUILDDIR) \ -I$(ACE_ROOT)/Kokyu \ - -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers \ - -I$(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers + -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers mif_server_SOURCES = \ server.cpp \ diff --git a/TAO/examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am b/TAO/examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am index 0d66a794acd..e805aefff64 100644 --- a/TAO/examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am +++ b/TAO/examples/Kokyu_dsrt_schedulers/muf_example/Makefile.am @@ -61,8 +61,7 @@ muf_client_CPPFLAGS = \ -I$(TAO_ROOT)/orbsvcs \ -I$(TAO_BUILDDIR)/orbsvcs \ -I$(ACE_ROOT)/Kokyu \ - -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers \ - -I$(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers + -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers muf_client_SOURCES = \ client.cpp \ @@ -130,8 +129,7 @@ muf_server_CPPFLAGS = \ -I$(TAO_ROOT) \ -I$(TAO_BUILDDIR) \ -I$(ACE_ROOT)/Kokyu \ - -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers \ - -I$(TAO_BUILDDIR)/examples/Kokyu_dsrt_schedulers + -I$(TAO_ROOT)/examples/Kokyu_dsrt_schedulers muf_server_SOURCES = \ server.cpp \ diff --git a/TAO/examples/POA/Explicit_Activation/Alt_Resources/Alt_Resource.mpc b/TAO/examples/POA/Explicit_Activation/Alt_Resources/Alt_Resource.mpc index 3c97f87aade..577eb5f2de0 100644 --- a/TAO/examples/POA/Explicit_Activation/Alt_Resources/Alt_Resource.mpc +++ b/TAO/examples/POA/Explicit_Activation/Alt_Resources/Alt_Resource.mpc @@ -1,7 +1,19 @@ // -*- MPC -*- // $Id$ -project: taolib, wfmo { +project: taolib { sharedname = Alt_Resource_Factory dynamicflags = Alt_Resource_Factory_BUILD_DLL + + verbatim(gnuace, top) { + ifneq ($(MAKE),) + include $(ACE_ROOT)/include/makeinclude/macros.GNU + TARGETS_NESTED := $(TARGETS_NESTED:.nested=) + $(TARGETS_NESTED): + " @echo alt_resource will only build on Windows" + else + } + verbatim(gnuace, bottom) { + endif + } } diff --git a/TAO/examples/POA/Explicit_Activation/Alt_Resources/Makefile.am b/TAO/examples/POA/Explicit_Activation/Alt_Resources/Makefile.am index 938e129bc66..d5937ed3027 100644 --- a/TAO/examples/POA/Explicit_Activation/Alt_Resources/Makefile.am +++ b/TAO/examples/POA/Explicit_Activation/Alt_Resources/Makefile.am @@ -13,11 +13,8 @@ ACE_ROOT = $(top_srcdir)/.. TAO_BUILDDIR = $(top_builddir) TAO_ROOT = $(top_srcdir) - ## Makefile.Alt_Resource.am -if BUILD_WFMO - noinst_LTLIBRARIES = libAlt_Resource_Factory.la libAlt_Resource_Factory_la_CPPFLAGS = \ @@ -34,8 +31,6 @@ noinst_HEADERS = \ Alt_Resource_Factory.h \ Resource_Factory.h -endif BUILD_WFMO - ## Clean up template repositories, etc. clean-local: -rm -f *~ *.bak *.rpo *.sym lib*.*_pure_* core core.* diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp index 01bbb250f5c..d253fa396c8 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp @@ -35,7 +35,7 @@ ACE_Config_Scheduler::create (const char * entry_point { typedef RtecScheduler::RT_Info* RT_Info_ptr; - RtecScheduler::RT_Info** rt_info = 0; + RtecScheduler::RT_Info** rt_info; ACE_NEW_RETURN (rt_info, RT_Info_ptr[1], -1); ACE_NEW_RETURN (rt_info[0], RtecScheduler::RT_Info, -1); diff --git a/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.cpp b/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.cpp deleted file mode 100644 index 2a01df0f410..00000000000 --- a/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.cpp +++ /dev/null @@ -1,421 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "TestInf/AppHelper.h" -#include "TestInf/OrbRunner.h" -#include "TestInf/AppShutdown.h" -#include "TestInf/TestAppExceptionC.h" -#include "TestServant/Foo_ClientEngine.h" -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "ace/Time_Value.h" -#include "ace/High_Res_Timer.h" - - -ServerApp::ServerApp() - : TestAppBase("CSD_PT_ServerApp"), - ior_filename_prefix_("foo"), - num_servants_(1), - num_csd_threads_(1), - num_orb_threads_(1), - num_remote_clients_(1), - num_collocated_clients_(0), - num_loops_(1), - use_csd_(1), - scenario_id_("UnknownScenarioId"), - trial_id_(0) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - if (result != 0) - { - return result; - } - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->servant_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->collocated_setup(); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_High_Res_Timer timer; - timer.start(); - - this->run_collocated_clients(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - - timer.stop(); - - ACE_Time_Value tv; - timer.elapsed_time(tv); - - unsigned num_operations = this->stats_.total(); - - double ops_per_msec = (1.0 * num_operations) / tv.msec(); - - ACE_DEBUG((LM_DEBUG, "%s,%d,%d,%d,%.2f\n", - this->scenario_id_.c_str(), - this->trial_id_, - num_operations, - tv.msec(), - ops_per_msec)); - - this->cleanup(); - return this->check_results () ? 0 : -1; -} - - -int -ServerApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - - if (result != 0) - { - return result; - } - - TheAppShutdown->init(this->orb_.in(), - this->num_remote_clients_ + - this->num_collocated_clients_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ServerApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - - if (this->use_csd_ > 0) - { - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; - } -} - - -void -ServerApp::servant_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->servants_.create_and_activate(this->num_servants_, - this->orb_.in (), - this->poa_.in (), - this->ior_filename_prefix_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::collocated_setup() -{ - int client_id = this->num_remote_clients_; - - for (unsigned i = 0; i < this->num_collocated_clients_; i++) - { - ++client_id; - - // Dole out the servant object references in a round-robin fashion. - unsigned servant_index = i % this->num_servants_; - - ServantListType::T_stub_var obj = this->servants_.objref(servant_index); - - ClientEngine_Handle engine = new Foo_ClientEngine(obj.in(), client_id); - - this->collocated_client_task_.add_engine(engine.in()); - } - - this->collocated_client_task_.num_loops(this->num_loops_); -} - - -void -ServerApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::run_collocated_clients(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ > 0) - { - if (this->collocated_client_task_.open() == -1) - { - ACE_THROW (TestAppException ()); - } - } -} - - -void -ServerApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -void -ServerApp::cleanup() -{ -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:n:t:r:c:l:u:x:z:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'p': - this->ior_filename_prefix_ = get_opts.opt_arg(); - break; - - case 's': - result = this->set_arg(this->num_servants_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 'n': - result = this->set_arg(this->num_csd_threads_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 't': - result = this->set_arg(this->num_orb_threads_, - get_opts.opt_arg(), - c, - "num_orb_threads", - 1); - break; - - case 'r': - result = this->set_arg(this->num_remote_clients_, - get_opts.opt_arg(), - c, - "num_remote_clients"); - break; - - case 'c': - result = this->set_arg(this->num_collocated_clients_, - get_opts.opt_arg(), - c, - "num_collocated_clients"); - break; - - case 'l': - result = this->set_arg(this->num_loops_, - get_opts.opt_arg(), - c, - "num_loops", - 1); - break; - - case 'u': - result = this->set_arg(this->use_csd_, - get_opts.opt_arg(), - c, - "use_csd_flag"); - break; - - case 'x': - this->scenario_id_ = get_opts.opt_arg(); - break; - - case 'z': - result = this->set_arg(this->trial_id_, - get_opts.opt_arg(), - c, - "trial_id_number", - 1); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-p <ior_filename_prefix>]\n" - "\t[-s <num_servants>]\n" - "\t[-n <num_csd_threads>]\n" - "\t[-t <num_orb_threads>]\n" - "\t[-r <num_remote_clients>]\n" - "\t[-c <num_collocated_clients>]\n" - "\t[-l <num_loops>]\n" - "\t[-u <use_csd_flag>]\n" - "\t[-x <scenario_id_string>]\n" - "\t[-z <trial_id_number>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ServerApp::arg_dependency_checks() -{ - return (this->num_remote_clients_ - + this->num_collocated_clients_) > 0 ? 0 : -1; -} - - -int -ServerApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - return 0; -} - - -PortableServer::POA_ptr -ServerApp::create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -bool -ServerApp::check_results() -{ - - this->stats_.init(this->num_remote_clients_ + - this->num_collocated_clients_, - this->num_loops_); - - Foo_ClientEngine::expected_results(this->stats_); - - for (unsigned i = 0; i < this->num_servants_; i++) - { - this->servants_.servant(i)->gather_stats(this->stats_); - } - - this->stats_.actual_vs_expected(); - - return true; -} diff --git a/TAO/performance-tests/CSD_Strategy/TestApps/run_test.pl b/TAO/performance-tests/CSD_Strategy/TestApps/run_test.pl deleted file mode 100755 index 42469543ce0..00000000000 --- a/TAO/performance-tests/CSD_Strategy/TestApps/run_test.pl +++ /dev/null @@ -1,227 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -# 5 Minute server timeout. -my $server_timeout_secs = 300; - -my $status = 0; - -my $iorfname_prefix = "servant"; -my $num_servants = 1; -my $num_orb_threads = 1; -my $num_remote_clients = 1; -my $num_csd_threads = 1; -my $num_collocated_clients = 0; -my $num_loops = 100; -my $use_csd = 1; -my $scenario_id = "UnsetScenarioId"; -my $trial_id = 1; - -my $i; -my $j; -my @iorfile; - -my $ARGC = @ARGV; - -if ($ARGC > 0) -{ - if ($ARGC > 3) - { - print STDERR "ERROR: Too many command-line arguments for $0.\n"; - exit 1; - } - - if ($ARGC < 2) - { - print STDERR "ERROR: Too few command-line arguments for $0.\n"; - exit 1; - } - - if ($ARGC > 2) - { - $num_loops = $ARGV[2]; - } - - $scenario_id = $ARGV[0]; - $trial_id = $ARGV[1]; - - my $subtest = $scenario_id; - - if ($subtest =~ /^x_(.+)$/) - { - $subtest = $1; - $use_csd = 0; - } - - if ($subtest eq 'remote') - { - $num_remote_clients = 40; - } - elsif ($subtest eq 'collocated') - { - $num_remote_clients = 0; - $num_collocated_clients = 10; - } - elsif ($subtest eq 'remote_orbthreads') - { - $num_orb_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_servants') - { - $num_servants = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_csdthreads') - { - $num_csd_threads = 5; - $num_servants = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - } - elsif ($subtest eq 'collocated_big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_remote_clients = 0; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'remote_huge') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 400; - $num_loops = $num_loops / 10; - # 15 minute server timeout - $server_timeout_secs = 1800; - } - elsif ($subtest eq 'collocated_huge') - { - $num_csd_threads = 20; - $num_servants = 10; - $num_remote_clients = 0; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'usage') - { - print STDOUT "Usage: $0 [<subtest>]\n" . - "\n" . - "Supported <subtest> values:\n" . - "\n" . - "\tremote\n" . - "\tcollocated\n" . - "\tremote_orbthreads\n" . - "\tremote_servants\n" . - "\tremote_csdthreads\n" . - "\tremote_big\n" . - "\tcollocated_big\n" . - "\tbig\n" . - "\tremote_huge\n" . - "\tusage\n" . - "\n"; - exit 0; - } - else - { - print STDERR "ERROR: invalid subtest argument for $0: $subtest\n"; - exit 1; - } -} - -#Delete old ior files. -for ($i = 0; $i < $num_servants; $i++) { - my $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process("server_main", - "-p $iorfname_prefix " . - "-s $num_servants " . - "-n $num_csd_threads " . - "-t $num_orb_threads " . - "-r $num_remote_clients " . - "-c $num_collocated_clients " . - "-l $num_loops " . - "-u $use_csd " . - "-x $scenario_id " . - "-z $trial_id"); - -$SV->Spawn(); - -# Wait for the servant ior files created by server. -for ($i = 0; $i < $num_servants; $i++) { - if (PerlACE::waitforfile_timed - ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill(); - $SV->TimedWait(1); - exit 1; - } -} - -my $count = 0; - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client_id = $i+1; - - # Round-robin assignment of servants to clients. - $j = $i % $num_servants; - - $CLS[$i] = new PerlACE::Process("client_main", - "-i file://$iorfile[$j] ". - "-n $client_id " . - "-l $num_loops"); - - $CLS[$i]->Spawn(); -} - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client = $CLS[$i]->WaitKill(600); - - if ($client != 0) - { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill(600); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for ($i = 0; $i < $num_servants; $i++) { - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/performance-tests/CSD_Strategy/TestInf/ClientTask.cpp b/TAO/performance-tests/CSD_Strategy/TestInf/ClientTask.cpp deleted file mode 100644 index 9b5ad8bc3cd..00000000000 --- a/TAO/performance-tests/CSD_Strategy/TestInf/ClientTask.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// $Id$ -// This may look like C, but it's really -*- C++ -*- -#include "ClientTask.h" -#include "tao/Exception.h" -#include "ace/SString.h" - - -ClientTask::ClientTask() - : failure_count_(0), - num_loops_(1) -{ -} - - -ClientTask::~ClientTask() -{ -} - - -void -ClientTask::add_engine(ClientEngine* engine) -{ - // Pass in false so that _add_ref() is called. - ClientEngine_Handle engine_handle(engine,false); - this->engines_.push_back(engine_handle); -} - - -void -ClientTask::num_loops(unsigned num_loops) -{ - this->num_loops_ = num_loops; -} - - -int -ClientTask::open(void*) -{ - unsigned num_threads = this->engines_.size(); - - if (num_threads == 0) - { - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) ClientTask cannot activate 0 threads.\n"), - -1); - } - - if (this->activate(THR_NEW_LWP | THR_JOINABLE, num_threads) != 0) - { - // Assumes that when activate returns non-zero return code that - // no threads were activated. - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) ClientTask failed to activate " - "the %d client threads.\n", num_threads), - -1); - } - - return 0; -} - - -int -ClientTask::svc() -{ - ClientEngine_Handle engine; - unsigned num_loops; - - { - GuardType guard(this->lock_); - this->engines_.get(engine, this->engines_.size() - 1); - this->engines_.pop_back(); - num_loops = this->num_loops_; - } - - ACE_TRY_NEW_ENV - { - if (engine->execute(num_loops ACE_ENV_ARG_PARAMETER) == false) - { - GuardType guard(this->lock_); - this->failure_count_++; - } - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "ClientTask::svc Caught exception from execute():"); - - GuardType guard(this->lock_); - this->failure_count_ ++; - } - ACE_CATCHALL - { - ACE_ERROR((LM_ERROR, - "(%P|%t) ClientTask::svc caught unknown (...) exception "\ - "in execute() " )); - GuardType guard(this->lock_); - this->failure_count_++; - } - ACE_ENDTRY; - - return 0; -} - - -int -ClientTask::close(u_long) -{ - return 0; -} - - -unsigned -ClientTask::failure_count() const -{ - return this->failure_count_; -} diff --git a/TAO/performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc b/TAO/performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc deleted file mode 100644 index 39bea8a0c18..00000000000 --- a/TAO/performance-tests/CSD_Strategy/TestInf/csd_pt_testinf.mpc +++ /dev/null @@ -1,38 +0,0 @@ -//$Id$ -project : taolib_with_idl, csd_threadpool { - sharedname = CSD_PT_TestInf - dynamicflags = CSD_PT_TESTINF_BUILD_DLL - idlflags += -Wb,export_macro=CSD_PT_TestInf_Export -Wb,export_include=CSD_PT_TestInf_Export.h - includes += $(TAO_ROOT)/tao - - IDL_Files { - FooException.idl - TestAppException.idl - CancelledException.idl - CustomException.idl - } - - Source_Files { - AppHelper.cpp - AppShutdown.cpp - ClientEngine.cpp - ClientTask.cpp - OrbRunner.cpp - OrbShutdownTask.cpp - OrbTask.cpp - TestAppBase.cpp - FooExceptionC.cpp - FooExceptionS.cpp - TestAppExceptionC.cpp - TestAppExceptionS.cpp - CancelledExceptionC.cpp - CancelledExceptionS.cpp - CustomExceptionC.cpp - CustomExceptionS.cpp - } - - Template_Files { - ServantList_T.cpp - } - -} diff --git a/TAO/performance-tests/CSD_Strategy/TestServant/Foo_i.h b/TAO/performance-tests/CSD_Strategy/TestServant/Foo_i.h deleted file mode 100644 index ca90fa99349..00000000000 --- a/TAO/performance-tests/CSD_Strategy/TestServant/Foo_i.h +++ /dev/null @@ -1,46 +0,0 @@ -// $Id$ -#ifndef FOO_I_H -#define FOO_I_H - -#include "CSD_PT_TestServant_Export.h" -#include "FooS.h" -#include "Foo_Statistics.h" - - -class CSD_PT_TestServant_Export Foo_i : public virtual POA_Foo, - public virtual PortableServer::ServantBase -{ - public: - - Foo_i(); - virtual ~Foo_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, - FooException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - - void gather_stats(Foo_Statistics& stats); - - - private: - - unsigned op_count_[5]; -}; - -#endif diff --git a/TAO/tao/CSD_Framework.mpc b/TAO/tao/CSD_Framework.mpc deleted file mode 100644 index 51aa8cd4736..00000000000 --- a/TAO/tao/CSD_Framework.mpc +++ /dev/null @@ -1,38 +0,0 @@ -//$Id$ -project : taolib, portableserver, core, pi { - sharedname = TAO_CSD_Framework - dynamicflags = TAO_CSD_FW_BUILD_DLL - includes += $(TAO_ROOT)/tao - - Source_Files { - CSD_Framework - } - - Header_Files { - CSD_Framework - } - - Inline_Files { - CSD_Framework - } - - Template_Files { - CSD_Framework - } - - Resource_Files { - CSD_Framework - } - - IDL_Files { - CSD_Framework - } - - PIDL_Files { - CSD_Framework - } - - Pkgconfig_Files { - CSD_Framework/TAO_CSD_Framework.pc.in - } -} diff --git a/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp b/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp deleted file mode 100644 index 63513ba304d..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// @(#) $Id$ - -#include "CSD_Default_Servant_Dispatcher.h" -#include "CSD_POA.h" -#include "CSD_Strategy_Repository.h" -#include "ace/Dynamic_Service.h" - -ACE_RCSID(CSD_Framework, - CSD_Default_Servant_Dispatcher, - "$Id$") - - -TAO_CSD_Default_Servant_Dispatcher::~TAO_CSD_Default_Servant_Dispatcher (void) -{ -} - - -TAO_Root_POA * -TAO_CSD_Default_Servant_Dispatcher::create_Root_POA (const ACE_CString &name, - TAO_POA_Manager &poa_manager, - const TAO_POA_Policy_Set &policies, - ACE_Lock &lock, - TAO_SYNCH_MUTEX &thread_lock, - TAO_ORB_Core &orb_core, - TAO_Object_Adapter *object_adapter - ACE_ENV_ARG_DECL) -{ - TAO_CSD_POA *poa = 0; - - ACE_NEW_THROW_EX (poa, - TAO_CSD_POA (name, - poa_manager, - policies, - 0, - lock, - thread_lock, - orb_core, - object_adapter - ACE_ENV_ARG_PARAMETER), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - - TAO_CSD_Strategy_Repository *repo = - ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ("TAO_CSD_Strategy_Repository"); - - CSD_Framework::Strategy_var strategy = repo->find (name); - - if (! CORBA::is_nil (strategy.in ())) - { - poa->set_csd_strategy (strategy.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - - return poa; -} diff --git a/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h b/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h deleted file mode 100644 index 120630c123b..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Default_Servant_Dispatcher.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_Default_Servant_Dispatcher.h - * - * $Id$ - * - * @author Yan Dai (dai_y@ociweb.com) - */ -//============================================================================= - -#ifndef TAO_CSD_DEFAULT_SERVANT_DISPATCHER_H -#define TAO_CSD_DEFAULT_SERVANT_DISPATCHER_H -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/Default_Servant_Dispatcher.h" - -/** - * @class TAO_CSD_Default_Servant_Dispatcher - * - * @brief Interface for CSD_POA servant dispatching strategies. - */ -class TAO_CSD_FW_Export TAO_CSD_Default_Servant_Dispatcher - : public virtual TAO_Default_Servant_Dispatcher -{ -public: - virtual ~TAO_CSD_Default_Servant_Dispatcher (void); - - - /// Factory method for creating new CSD Root POA. - virtual TAO_Root_POA *create_Root_POA (const ACE_CString &name, - TAO_POA_Manager &poa_manager, - const TAO_POA_Policy_Set &policies, - ACE_Lock &lock, - TAO_SYNCH_MUTEX &thread_lock, - TAO_ORB_Core &orb_core, - TAO_Object_Adapter *object_adapter - ACE_ENV_ARG_DECL); -}; - -#include /**/ "ace/post.h" -#endif /* TAO_CSD_DEFAULT_SERVANT_DISPATCHER_H */ diff --git a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp deleted file mode 100644 index 94d71cb86af..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp +++ /dev/null @@ -1,462 +0,0 @@ -// $Id$ -#include "CSD_FW_Server_Request_Wrapper.h" -#include "tao/debug.h" -#include "tao/ORB_Constants.h" -#include "ORB_Core.h" -#include "tao/Transport.h" -#include "tao/CDR.h" - - -ACE_RCSID (CSD_Framework, - FW_Server_Request_Wrapper, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_FW_Server_Request_Wrapper.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::FW_Server_Request_Wrapper::~FW_Server_Request_Wrapper() -{ - // Only delete the request if we cloned it. - if (this->is_clone_) - { - // Since this TAO_ServerRequest object is a clone, it - // "owns" the input and output CDR objects held by the - // incoming_ and outgoing_ data members, respectfully. - // Thus, for the clone case, the TAO_ServerRequest dtor - // needs to release (aka, delete) the CDR objects. - delete this->request_->incoming_; - - // Get the start message block that reference to the data allocated - // on the heap. - if (this->request_->outgoing_ != 0) - { - char* buffer = this->request_->outgoing_->begin ()->base (); - delete [] buffer; - delete this->request_->outgoing_; - } - if (this->request_->operation_details_ != 0) - { - char* opname = (char*)this->request_->operation_details_->opname_; - delete [] opname; - } - delete this->request_; - } -} - - -// Assumes that the servant argument is not a NULL pointer. -void -TAO::CSD::FW_Server_Request_Wrapper::dispatch - (PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - servant->_dispatch(*this->request_, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - // Only CORBA exceptions are caught here. - ACE_CATCHANY - { - if (this->request_->collocated()) - { - // For collocated requests, we re-throw the exception. - ACE_RE_THROW; - } - else if (!this->request_->sync_with_server() && - this->request_->response_expected() && - !this->request_->deferred_reply()) - { - // The request is a remote request that is expecting a reply. - this->request_->tao_send_reply_exception(ACE_ANY_EXCEPTION); - } - else if (TAO_debug_level > 0) - { - // It is unfortunate that an exception (probably a system - // exception) was thrown by the dispatch code (even by the - // user) when the client was not expecting a response. - // However, in this case, we cannot close the connection - // down, since it really isn't the client's fault. - - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) exception thrown ") - ACE_TEXT ("but client is not waiting a response\n"))); - - ACE_PRINT_EXCEPTION ( - ACE_ANY_EXCEPTION, - "FW_Server_Request_Wrapper::dispatch ()"); - } - } -#if defined (TAO_HAS_EXCEPTIONS) - ACE_CATCHALL - { - // @@ TODO some c++ exception or another, but what do we do with - // it? - // We are supposed to map it into a CORBA::UNKNOWN exception. - // BTW, this cannot be detected if using the <env> mapping. If - // we have native exceptions but no support for them in the ORB - // we should still be able to catch it. If we don't have native - // exceptions it couldn't have been raised in the first place! - CORBA::UNKNOWN exception (CORBA::SystemException::_tao_minor_code - (TAO_UNHANDLED_SERVER_CXX_EXCEPTION, 0), - CORBA::COMPLETED_MAYBE); - - if (this->request_->collocated()) - { - // For collocated requests, we re-throw the exception. - ACE_RE_THROW; - } - else if (!this->request_->sync_with_server() && - this->request_->response_expected() && - !this->request_->deferred_reply()) - { - // The request is a remote request that is expecting a reply. - this->request_->tao_send_reply_exception(exception); - } - else if (TAO_debug_level > 0) - { - // It is unfortunate that an exception (probably a system - // exception) was thrown by the dispatch code (even by the - // user) when the client was not expecting a response. - // However, in this case, we cannot close the connection - // down, since it really isn't the client's fault. - - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("(%P|%t) exception thrown ") - ACE_TEXT ("but client is not waiting a response\n"))); - - ACE_PRINT_EXCEPTION ( - exception, - "FW_Server_Request_Wrapper::dispatch ()"); - } - } -#endif /* TAO_HAS_EXCEPTIONS */ - - ACE_ENDTRY; -} - - -TAO_ServerRequest* -TAO::CSD::FW_Server_Request_Wrapper::clone (TAO_ServerRequest*& request) -{ - // TBD-CSD: Ultimately add an argument for an allocator. - TAO_ServerRequest* clone_obj = this->create_new_request (); - - if (clone_obj == 0) - { - return 0; - } - - // TYPE: TAO_Pluggable_Messaging* - // ACTION: Assuming that a shallow-copy is ok here. - clone_obj->mesg_base_ = request->mesg_base_; - - // TYPE: ACE_CString - // ACTION: Assignment performs deep-copy of string contents. - clone_obj->operation_ = request->operation_; - - // TYPE: CORBA::Object_var - // ACTION: Assignment performs reference-counted copy of object ref. - clone_obj->forward_location_ = request->forward_location_; - - // TYPE: TAO_InputCDR* - // ACTION: This *must* be "cloned". - if (request->incoming_ != 0) - { - clone_obj->incoming_ = this->clone (request->incoming_); - } - - // TYPE: TAO_OutputCDR* - // ACTION: This *must* be "cloned". - if (request->outgoing_ != 0) - { - clone_obj->outgoing_ = this->create_new_output_cdr (); - } - - // TYPE: TAO_Transport* - // ACTION: Assuming that a shallow-copy is ok here. - clone_obj->transport_ = request->transport_; - - // TYPE: CORBA::Boolean - // ACTION: Primitive data type assignment. - clone_obj->response_expected_ = request->response_expected_; - - // TYPE: CORBA::Boolean - // ACTION: Primitive data type assignment. - clone_obj->deferred_reply_ = request->deferred_reply_; - - // TYPE: CORBA::Boolean - // ACTION: Primitive data type assignment. - clone_obj->sync_with_server_ = request->sync_with_server_; - - // TYPE: CORBA::Boolean - // ACTION: Primitive data type assignment. - clone_obj->is_dsi_ = request->is_dsi_; - - // TYPE: CORBA::ULong - // ACTION: Primitive data type assignment. - clone_obj->exception_type_ = request->exception_type_; - - // TYPE: TAO_ORB_Core* - // ACTION: Assuming that a shallow-copy is ok here. - clone_obj->orb_core_ = request->orb_core_; - - // TYPE: TAO_Service_Context - // ACTION: No copy/assignment operator, so adding/using a clone operation. - this->clone (request->request_service_context_, clone_obj->request_service_context_); - - // TYPE: TAO_Service_Context - // ACTION: No copy/assignment operator, so adding/using a clone operation. - this->clone (request->reply_service_context_, clone_obj->reply_service_context_); - - // TYPE: CORBA::ULong - // ACTION: Primitive data type assignment. - clone_obj->request_id_ = request->request_id_; - - // TYPE: TAO_Tagged_Profile - // ACTION: No copy/assignment operator, so adding/using a clone operation. - this->clone (request->profile_, clone_obj->profile_); - - // TYPE: CORBA::OctetSeq_var - // ACTION: Assignment performs reference-counted copy of sequence. - clone_obj->requesting_principal_ = request->requesting_principal_; - - // TYPE: ptrdiff_t - // ACTION: Primitive data type assignment (unsigned integral type). - clone_obj->dsi_nvlist_align_ = request->dsi_nvlist_align_; - - // TYPE: TAO_Operation_Details const * const - // ACTION: Need to clone this. - if (request->operation_details_ != 0) - { - ACE_ASSERT (request->incoming_ == 0); - if (this->clone (request->operation_details_, - clone_obj->operation_details_, - clone_obj->incoming_) == false) - { - return 0; - } - } - - // TYPE: CORBA::Boolean - // ACTION: Primitive data type assignment. - clone_obj->argument_flag_ = request->argument_flag_; - -#if TAO_HAS_INTERCEPTORS == 1 - // TYPE: size_t - // ACTION: Primitive data type assignment. - // Just leave this alone for a clone. - // - //clone_obj->interceptor_count_ = request->interceptor_count_; - - // TYPE: TAO::PICurrent_Impl - // ACTION: Copy/assignment operator disabled on purpose. - // Just leave this alone for a clone. - // - // clone_obj->rs_pi_current_ - - // TYPE: TAO::PICurrent_Copy_Callback - // ACTION: No copy/assignment operator. - // Just leave this alone for a clone. - // - // clone_obj->pi_current_copy_callback_ - - // TYPE: CORBA::OctetSeq_var - // ACTION: Assignment performs reference-counted copy of sequence. - // Assuming that this is ok. - // Just leave this alone for a clone. - // - //clone_obj->result_seq_ = request->result_seq_; -#endif /* TAO_HAS_INTERCEPTORS == 1 */ - - if (clone_obj->transport_ != 0) - { - clone_obj->transport_->assign_translators(clone_obj->incoming_, - clone_obj->outgoing_); - } - return clone_obj; -} - - -TAO_InputCDR* -TAO::CSD::FW_Server_Request_Wrapper::clone (TAO_InputCDR*& from) -{ - TAO_InputCDR* clone_ptr = 0; - ACE_NEW_RETURN (clone_ptr, - TAO_InputCDR(*from), - 0); - return clone_ptr; -} - - -bool -TAO::CSD::FW_Server_Request_Wrapper::clone (TAO_Operation_Details const *& from, - TAO_Operation_Details const *& to, - TAO_InputCDR*& cdr) -{ - TAO_Operation_Details* from_non_const - = const_cast <TAO_Operation_Details *>(from); - - char* cloned_op_name = new char[from_non_const->opname_len_ + 1]; - ACE_OS::strncpy(cloned_op_name, from_non_const->opname_, from_non_const->opname_len_); - cloned_op_name[from_non_const->opname_len_] = '\0'; - - TAO_OutputCDR outcdr; - - if (! from_non_const->marshal_args (outcdr)) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT("(%P|%T) TAO::CSD::FW_Server_Request_Wrapper::") - ACE_TEXT("clone TAO_Operation_Details failed\n"))); - return false; - } - - ACE_NEW_RETURN (cdr, - TAO_InputCDR (outcdr), - false); - - - // CSD-TBD: Eventually need to use allocators. - - // CSD-TBD: Assert that this->ex_data_ and this->ex_count_ are both == 0 - TAO_Operation_Details* to_non_const; - ACE_NEW_RETURN (to_non_const, - TAO_Operation_Details(cloned_op_name, - from_non_const->opname_len_, - from_non_const->argument_flag_, - 0, - 0, - 0, - 0), - false); - - - // DATA MEMBER: const char *opname_; - // DATA MEMBER: CORBA::ULong opname_len_; - // DATA MEMBER: CORBA::Boolean argument_flag_; - // DATA MEMBER: TAO::Argument **args_; - // DATA MEMBER: CORBA::ULong num_args_; - // DATA MEMBER: TAO::Exception_Data *ex_data_; - // DATA MEMBER: CORBA::ULong ex_count_; - // - // ACTION: None - handled in ctor - // - - // DATA MEMBER: CORBA::ULong request_id_; - // DATA MEMBER: CORBA::Octet response_flags_; - // DATA MEMBER: TAO_Target_Specification::TAO_Target_Address addressing_mode_; - // DATA MEMBER: TAO_Service_Context request_service_info_; - // DATA MEMBER: TAO_Service_Context reply_service_info_; - // - // ACTION: Use assignment op to copy from "this" object to the clone. - // - to_non_const->request_id_ = from->request_id_; - to_non_const->response_flags_ = from->response_flags_; - to_non_const->addressing_mode_ = from->addressing_mode_; - - // DATA MEMBER: TAO_Service_Context request_service_info_; - // DATA MEMBER: TAO_Service_Context reply_service_info_; - // - // ACTION: Use the TAO_Service_Context clone() method. - // - this->clone (from_non_const->request_service_info_, to_non_const->request_service_info_); - this->clone (from_non_const->reply_service_info_, to_non_const->reply_service_info_); - - to = to_non_const; - - return true; -} - - -void -TAO::CSD::FW_Server_Request_Wrapper::clone (TAO_Tagged_Profile& from, - TAO_Tagged_Profile& to) -{ - to.orb_core_ = from.orb_core_; - to.discriminator_ = from.discriminator_; - to.object_key_extracted_ = from.object_key_extracted_; - to.object_key_ = from.object_key_; - to.profile_ = from.profile_; - to.profile_index_ = from.profile_index_; - to.type_id_ = from.type_id_; -} - - -void -TAO::CSD::FW_Server_Request_Wrapper::clone (TAO_Service_Context& from, - TAO_Service_Context& to) -{ - to.service_context_ = from.service_context_; -} - -TAO_ServerRequest* -TAO::CSD::FW_Server_Request_Wrapper::create_new_request () -{ - // Use one of constructor to create the TAO_ServerRequest object then - // reset the data members. This reduces the footprint due to a default - // TAO_ServerRequest constructor. - // - //TAO_ServerRequest (TAO_Pluggable_Messaging *mesg_base, - // TAO_InputCDR &input, - // TAO_OutputCDR &output, - // TAO_Transport *transport, - // TAO_ORB_Core *orb_core); - - TAO_ServerRequest* request = 0; - - TAO_InputCDR dummy_input ((ACE_Message_Block *)0); // empty input cdr stream - TAO_OutputCDR dummy_output ((char *)0, (size_t) 0); // empty output cdr stream - ACE_NEW_RETURN (request, - TAO_ServerRequest (0, - dummy_input, - dummy_output, - 0, - 0), - 0); - - request->incoming_ = 0; - request->outgoing_ = 0; - - return request; -} - - -TAO_OutputCDR* -TAO::CSD::FW_Server_Request_Wrapper::create_new_output_cdr () -{ - TAO_OutputCDR* cdr = 0; - - // A buffer that we will use to initialise the CDR stream - char* repbuf = new char[ACE_CDR::DEFAULT_BUFSIZE]; - - ACE_CDR::Octet major; - ACE_CDR::Octet minor; - this->request_->outgoing_->get_version (major, minor); - - // Initialze an output CDR on the stack - // NOTE: Don't jump to a conclusion as to why we are using the - // input_cdr and hence the global pool here. These pools will move - // to the lanes anyway at some point of time. Further, it would have - // been awesome to have this in TSS. But for some reason the cloning - // that happens when the ORB gets flow controlled while writing a - // reply is messing things up. We crash horribly. Doing this adds a - // lock, we need to set things like this -- put stuff in TSS here - // and transfer to global memory when we get flow controlled. We - // need to work on the message block to get it right! - ACE_NEW_RETURN (cdr, - TAO_OutputCDR (repbuf, - ACE_CDR::DEFAULT_BUFSIZE, - TAO_ENCAP_BYTE_ORDER, - this->request_->orb_core_->input_cdr_buffer_allocator (), - this->request_->orb_core_->input_cdr_dblock_allocator (), - this->request_->orb_core_->input_cdr_msgblock_allocator (), - this->request_->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), - major, - minor), - 0); - - return cdr; -} - diff --git a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h deleted file mode 100644 index 945a921ca99..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h +++ /dev/null @@ -1,127 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_FW_Server_Request_Wrapper.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_FW_SERVER_REQUEST_WRAPPER_H -#define TAO_CSD_FW_SERVER_REQUEST_WRAPPER_H - -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/TAO_Server_Request.h" -#include "tao/operation_details.h" -#include "tao/PortableServer/Servant_Base.h" - -namespace TAO -{ - namespace CSD - { - - /** - * @class FW_Server_Request_Wrapper - * - * @brief Wrapper around a TAO_Server_Request that will be cloned - * at the proper time. - * - * This CSD Framework class is used to provide an interface to a - * TAO_ServerRequest object such that it can be used for CSD strategies - * that need to clone TAO_Server_Requests (ie, so that they may be - * placed on a queue to be dispatched by another thread). - * - * There are several purposes for this class, with the main thing being - * that the TAO_ServerRequest object is not used directly by the - * CSD Strategies since it is, after all, an internal TAO class that was - * never meant to be exposed. Future changes to TAO's internal design - * may cause disruption in the TAO_ServerRequest class. These changes - * would only need to be accounted for here in this - * FW_Server_Request_Wrapper class' implementation, and all CSD - * Strategies will work again. It's a maintenance issue. - * - * @note: The CSD namespace is inside of TAO namespace in current - * implementation. This can be changed but, at least for now, it's - * already been delivered to some customs, we leave it as-is. If it - * needs to change, we will make this change. - */ - class TAO_CSD_FW_Export FW_Server_Request_Wrapper - { - public: - - /// Constructor. - FW_Server_Request_Wrapper(TAO_ServerRequest& server_request); - - /// Destructor. - ~FW_Server_Request_Wrapper(); - - /// Perform the clone operation. - void clone(); - - /// Dispatch the request to the servant. - void dispatch(PortableServer::Servant servant ACE_ENV_ARG_DECL); - - /// Cancel the request. - void cancel(); - - - private: - - /// Create a deep copy of the request_ object. - /// The other clone methods are used to support the TAO_ServerRequest clone. - TAO_ServerRequest* clone (TAO_ServerRequest*& from); - - /// Clone an input cdr stream. - TAO_InputCDR* clone (TAO_InputCDR*& from); - - /// Create a deep copy of a TAO_Operation_Details object and marshall - /// the arguments into a TAO_InputCDR stream. The cloned TAO_Operation_Details - /// object is created without any arguments. This would help the skeleton - /// code to determine whether the arguments are in the operation_details_ - /// object or should be demarshalled from the incoming_ stream in the request_ - /// object. - bool clone (TAO_Operation_Details const *& from, - TAO_Operation_Details const *& to, - TAO_InputCDR* & cdr); - - /// Clone the TAO_Tagged_Profile object. - void clone (TAO_Tagged_Profile& from, TAO_Tagged_Profile& to); - - /// Clone the TAO_Service_Context object. - void clone (TAO_Service_Context& from, TAO_Service_Context& to); - - /// Create a new TAO_ServerRequest with default initial values. - TAO_ServerRequest* create_new_request (); - - /// Create a TAO_OutputCDR stream initialized with a heap allocated - /// buffer. - TAO_OutputCDR* create_new_output_cdr (); - - /// A flag that indicates that the TAO_ServerRequest object - /// is already cloned. - bool is_clone_; - - /// Pointer to the underlying TAO_ServerRequest object. - TAO_ServerRequest* request_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_FW_Server_Request_Wrapper.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_FW_SERVER_REQUEST_WRAPPER_H */ diff --git a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.inl b/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.inl deleted file mode 100644 index a259de116ab..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.inl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::FW_Server_Request_Wrapper::FW_Server_Request_Wrapper - (TAO_ServerRequest& server_request) - : is_clone_(false), - request_(&server_request) -{ -} - - -ACE_INLINE -void -TAO::CSD::FW_Server_Request_Wrapper::clone() -{ - // Only clone the TAO_Server_Request object if we have not performed the - // clone already. This really should only be called once, but this code - // makes sure that we do not introduce a leak. - if (!this->is_clone_) - { - this->request_ = this->clone (this->request_); - this->is_clone_ = true; - } -} - - -ACE_INLINE -void -TAO::CSD::FW_Server_Request_Wrapper::cancel() -{ - // We only need to handle remote requests that are expecting a reply. - if (!this->request_->collocated() && - !this->request_->sync_with_server() && - this->request_->response_expected() && - !this->request_->deferred_reply()) - { - CORBA::NO_IMPLEMENT ex; - this->request_->tao_send_reply_exception(ex); - } -} - diff --git a/TAO/tao/CSD_Framework/CSD_Framework.pidl b/TAO/tao/CSD_Framework/CSD_Framework.pidl deleted file mode 100644 index ba1940df02e..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Framework.pidl +++ /dev/null @@ -1,75 +0,0 @@ -// -*- IDL -*- -/** - * @file CSD_Framework.pidl - * - * $Id$ - * - * @brief Pre-compiled IDL source for the CSD_Framework module. - * - * This file was used to generate the code in - * CSD_FrameworkC.{h,inl,cpp}, using the following command: - * - $ACE_ROOT/bin/tao_idl \ - -o orig -Gp -Gd -Ge 1 -Gt -Sc -GA -I$TAO_ROOT \ - -Wb,export_macro=TAO_CSD_FW_Export \ - -Wb,export_include="CSD_FW_Export.h" \ - -Wb,pre_include="ace/pre.h" \ - -Wb,post_include="ace/post.h" \ - CSD_Framework.pidl - * - * After the file is generated a patch from the diffs directory must - * be applied. The patch: - * - * - Disables parts of the code under certain configurations. - * - * - Eliminates cycles in the include dependencies. - * - * - Adds non-idl components of CSD_Framework to the namespace. - * This includes (a) Servant (b) ServantBase (c) RefCountServantBase - * (d) Cookie (e) ObjectId_to_string (f) string_to_ObjectId (g) - * ObjectId_to_wstring (h) wstring_to_ObjectId (i) ServantBase_var - * (j) DynamicImplementation (k) LocalServantBase - * - * Apply patches using the following command: - * - * patch < diffs/CSD_Framework.diff - * - * Note: The diffs were generated using: - * - * rm diffs/CSD_Framework.diff - * for i in CSD_FrameworkC.{h,i,cpp}; do - * diff -wub orig/$i $i >> diffs/CSD_Framework.diff - * done - */ - -#ifndef _CSD_FRAMEWORK_IDL_ -#define _CSD_FRAMEWORK_IDL_ - -#include <tao/PortableServer/PortableServer.pidl> - -module CSD_Framework { - - //# pragma version CSD_Framework 2.3 - - // This is a common base interface for all CSD strategy - // implementations - local interface Strategy { - - //# pragma version Strategy 2.3 - - // This is support for a legacy method of supplying a strategy to a - // POA. - boolean apply_to(in PortableServer::POA p); - }; - - // Specialized POA providing a method to supply a strategy object to - // the POA. - local interface POA : PortableServer::POA { - - //# pragma version POA 2.3 - - void set_csd_strategy (in Strategy s); - }; -}; - -#endif //_CSD_FRAMEWORK_IDL_ diff --git a/TAO/tao/CSD_Framework/CSD_FrameworkA.cpp b/TAO/tao/CSD_Framework/CSD_FrameworkA.cpp deleted file mode 100644 index 9045084e4bc..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FrameworkA.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -#include "CSD_FrameworkA.h" -#include "tao/AnyTypeCode/Null_RefCount_Policy.h" -#include "tao/AnyTypeCode/TypeCode_Constants.h" -#include "tao/AnyTypeCode/Alias_TypeCode_Static.h" -#include "tao/AnyTypeCode/Objref_TypeCode_Static.h" -#include "tao/AnyTypeCode/String_TypeCode_Static.h" -#include "tao/AnyTypeCode/Any.h" -#include "tao/CDR.h" -#include "tao/AnyTypeCode/Any.h" -#include "tao/AnyTypeCode/Any_Impl_T.h" - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/objref_typecode.cpp:76 - -static TAO::TypeCode::Objref<char const *, - TAO::Null_RefCount_Policy> - _tao_tc_CSD_Framework_Strategy ( - ::CORBA::tk_local_interface, - "IDL:CSD_Framework/Strategy:1.0", - "Strategy"); - -namespace CSD_Framework -{ - ::CORBA::TypeCode_ptr const _tc_Strategy = - &_tao_tc_CSD_Framework_Strategy; -} - - - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/objref_typecode.cpp:76 - -static TAO::TypeCode::Objref<char const *, - TAO::Null_RefCount_Policy> - _tao_tc_CSD_Framework_POA ( - ::CORBA::tk_local_interface, - "IDL:CSD_Framework/POA:1.0", - "POA"); - -namespace CSD_Framework -{ - ::CORBA::TypeCode_ptr const _tc_POA = - &_tao_tc_CSD_Framework_POA; -} - - diff --git a/TAO/tao/CSD_Framework/CSD_FrameworkA.h b/TAO/tao/CSD_Framework/CSD_FrameworkA.h deleted file mode 100644 index db88e7a79d6..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FrameworkA.h +++ /dev/null @@ -1,64 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// .\be\be_codegen.cpp:754 - -#ifndef _TAO_IDL_ORIG_CSD_FRAMEWORKA_H_ -#define _TAO_IDL_ORIG_CSD_FRAMEWORKA_H_ - -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" -#include "CSD_FrameworkC.h" -//#include "tao/PortableServer/PortableServerA.h" - - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:59 - -namespace CSD_Framework -{ - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:49 - - extern TAO_CSD_FW_Export ::CORBA::TypeCode_ptr const _tc_Strategy; - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:49 - - extern TAO_CSD_FW_Export ::CORBA::TypeCode_ptr const _tc_POA; - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:86 - -} // module CSD_Framework - -#include /**/ "ace/post.h" - -#endif /* ifndef */ diff --git a/TAO/tao/CSD_Framework/CSD_FrameworkC.cpp b/TAO/tao/CSD_Framework/CSD_FrameworkC.cpp deleted file mode 100644 index 12b91dd79cc..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FrameworkC.cpp +++ /dev/null @@ -1,293 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// .\be\be_codegen.cpp:277 - - -#include "CSD_FrameworkC.h" -#include "tao/CDR.h" -#include "ace/OS_NS_string.h" - -#if !defined (__ACE_INLINE__) -#include "CSD_FrameworkC.inl" -#endif /* !defined INLINE */ - -// TAO_IDL - Generated from -// .\be\be_visitor_arg_traits.cpp:70 - -// Arg traits specializations. -namespace TAO -{ -} - - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for CSD_Framework::Strategy. - -CSD_Framework::Strategy_ptr -TAO::Objref_Traits<CSD_Framework::Strategy>::duplicate ( - CSD_Framework::Strategy_ptr p - ) -{ - return CSD_Framework::Strategy::_duplicate (p); -} - -void -TAO::Objref_Traits<CSD_Framework::Strategy>::release ( - CSD_Framework::Strategy_ptr p - ) -{ - CORBA::release (p); -} - -CSD_Framework::Strategy_ptr -TAO::Objref_Traits<CSD_Framework::Strategy>::nil (void) -{ - return CSD_Framework::Strategy::_nil (); -} - -::CORBA::Boolean -TAO::Objref_Traits<CSD_Framework::Strategy>::marshal ( - CSD_Framework::Strategy_ptr p, - TAO_OutputCDR & cdr - ) -{ - return ::CORBA::Object::marshal (p, cdr); -} - -CSD_Framework::Strategy::Strategy (void) -{} - -CSD_Framework::Strategy::~Strategy (void) -{} - -CSD_Framework::Strategy_ptr -CSD_Framework::Strategy::_narrow ( - ::CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - return Strategy::_duplicate ( - dynamic_cast<Strategy_ptr> (_tao_objref) - ); -} - -CSD_Framework::Strategy_ptr -CSD_Framework::Strategy::_unchecked_narrow ( - ::CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - return Strategy::_duplicate ( - dynamic_cast<Strategy_ptr> (_tao_objref) - ); -} - -CSD_Framework::Strategy_ptr -CSD_Framework::Strategy::_duplicate (Strategy_ptr obj) -{ - if (! CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -void -CSD_Framework::Strategy::_tao_release (Strategy_ptr obj) -{ - CORBA::release (obj); -} - -::CORBA::Boolean -CSD_Framework::Strategy::_is_a ( - const char *value - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - if ( - !ACE_OS::strcmp ( - value, - "IDL:CSD_Framework/Strategy:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/LocalObject:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return true; // success using local knowledge - } - else - { - return false; - } -} - -const char* CSD_Framework::Strategy::_interface_repository_id (void) const -{ - return "IDL:CSD_Framework/Strategy:1.0"; -} - -::CORBA::Boolean -CSD_Framework::Strategy::marshal (TAO_OutputCDR &) -{ - return false; -} - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for CSD_Framework::POA. - -CSD_Framework::POA_ptr -TAO::Objref_Traits<CSD_Framework::POA>::duplicate ( - CSD_Framework::POA_ptr p - ) -{ - return CSD_Framework::POA::_duplicate (p); -} - -void -TAO::Objref_Traits<CSD_Framework::POA>::release ( - CSD_Framework::POA_ptr p - ) -{ - CORBA::release (p); -} - -CSD_Framework::POA_ptr -TAO::Objref_Traits<CSD_Framework::POA>::nil (void) -{ - return CSD_Framework::POA::_nil (); -} - -::CORBA::Boolean -TAO::Objref_Traits<CSD_Framework::POA>::marshal ( - CSD_Framework::POA_ptr p, - TAO_OutputCDR & cdr - ) -{ - return ::CORBA::Object::marshal (p, cdr); -} - -CSD_Framework::POA::POA (void) -{} - -CSD_Framework::POA::~POA (void) -{} - -CSD_Framework::POA_ptr -CSD_Framework::POA::_narrow ( - ::CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - return POA::_duplicate ( - dynamic_cast<POA_ptr> (_tao_objref) - ); -} - -CSD_Framework::POA_ptr -CSD_Framework::POA::_unchecked_narrow ( - ::CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - return POA::_duplicate ( - dynamic_cast<POA_ptr> (_tao_objref) - ); -} - -CSD_Framework::POA_ptr -CSD_Framework::POA::_duplicate (POA_ptr obj) -{ - if (! CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -void -CSD_Framework::POA::_tao_release (POA_ptr obj) -{ - CORBA::release (obj); -} - -::CORBA::Boolean -CSD_Framework::POA::_is_a ( - const char *value - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - if ( - !ACE_OS::strcmp ( - value, - "IDL:omg.org/PortableServer/POA:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:CSD_Framework/POA:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/LocalObject:1.0" - ) || - !ACE_OS::strcmp ( - value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return true; // success using local knowledge - } - else - { - return false; - } -} - -const char* CSD_Framework::POA::_interface_repository_id (void) const -{ - return "IDL:CSD_Framework/POA:1.0"; -} - -::CORBA::Boolean -CSD_Framework::POA::marshal (TAO_OutputCDR &) -{ - return false; -} diff --git a/TAO/tao/CSD_Framework/CSD_FrameworkC.h b/TAO/tao/CSD_Framework/CSD_FrameworkC.h deleted file mode 100644 index 832eae8ffe0..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FrameworkC.h +++ /dev/null @@ -1,312 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// .\be\be_codegen.cpp:154 - -#ifndef _TAO_IDL_ORIG_CSD_FRAMEWORKC_H_ -#define _TAO_IDL_ORIG_CSD_FRAMEWORKC_H_ - -#include /**/ "ace/pre.h" - - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_FW_Export.h" -#include "tao/ORB.h" -#include "tao/SystemException.h" -#include "tao/Environment.h" -#include "tao/Object.h" -#include "tao/Objref_VarOut_T.h" - -#include "tao/PortableServer/PortableServer.h" - -#if defined (TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO TAO_CSD_FW_Export - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:49 - -namespace CSD_Framework -{ - - // TAO_IDL - Generated from - // .\be\be_interface.cpp:646 - -#if !defined (_CSD_FRAMEWORK_STRATEGY__VAR_OUT_CH_) -#define _CSD_FRAMEWORK_STRATEGY__VAR_OUT_CH_ - - class Strategy; - typedef Strategy *Strategy_ptr; - - typedef - TAO_Objref_Var_T< - Strategy - > - Strategy_var; - - typedef - TAO_Objref_Out_T< - Strategy - > - Strategy_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_CSD_FRAMEWORK_STRATEGY_CH_) -#define _CSD_FRAMEWORK_STRATEGY_CH_ - - class TAO_CSD_FW_Export Strategy - : public virtual ::CORBA::Object - { - public: - typedef Strategy_ptr _ptr_type; - typedef Strategy_var _var_type; - - // The static operations. - static Strategy_ptr _duplicate (Strategy_ptr obj); - - static void _tao_release (Strategy_ptr obj); - - static Strategy_ptr _narrow ( - ::CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static Strategy_ptr _unchecked_narrow ( - ::CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static Strategy_ptr _nil (void) - { - return static_cast<Strategy_ptr> (0); - } - - - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 - - virtual ::CORBA::Boolean apply_to ( - ::PortableServer::POA_ptr p - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - ::CORBA::SystemException - )) = 0; - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ch.cpp:210 - - virtual ::CORBA::Boolean _is_a ( - const char *type_id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual const char* _interface_repository_id (void) const; - virtual ::CORBA::Boolean marshal (TAO_OutputCDR &cdr); - - protected: - // Abstract or local interface only. - Strategy (void); - - virtual ~Strategy (void); - - private: - // Private and unimplemented for concrete interfaces. - Strategy (const Strategy &); - - void operator= (const Strategy &); - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // .\be\be_interface.cpp:646 - -#if !defined (_CSD_FRAMEWORK_POA__VAR_OUT_CH_) -#define _CSD_FRAMEWORK_POA__VAR_OUT_CH_ - - class POA; - typedef POA *POA_ptr; - - typedef - TAO_Objref_Var_T< - POA - > - POA_var; - - typedef - TAO_Objref_Out_T< - POA - > - POA_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_CSD_FRAMEWORK_POA_CH_) -#define _CSD_FRAMEWORK_POA_CH_ - - class TAO_CSD_FW_Export POA - : public virtual ::PortableServer::POA - { - public: - typedef POA_ptr _ptr_type; - typedef POA_var _var_type; - - // The static operations. - static POA_ptr _duplicate (POA_ptr obj); - - static void _tao_release (POA_ptr obj); - - static POA_ptr _narrow ( - ::CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static POA_ptr _unchecked_narrow ( - ::CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static POA_ptr _nil (void) - { - return static_cast<POA_ptr> (0); - } - - - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void set_csd_strategy ( - ::CSD_Framework::Strategy_ptr s - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - ::CORBA::SystemException - )) = 0; - - // TAO_IDL - Generated from - // c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ch.cpp:210 - - virtual ::CORBA::Boolean _is_a ( - const char *type_id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual const char* _interface_repository_id (void) const; - virtual ::CORBA::Boolean marshal (TAO_OutputCDR &cdr); - - protected: - // Abstract or local interface only. - POA (void); - - virtual ~POA (void); - - private: - // Private and unimplemented for concrete interfaces. - POA (const POA &); - - void operator= (const POA &); - }; - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// c:\csd\code\doc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:78 - -} // module CSD_Framework - -// TAO_IDL - Generated from -// .\be\be_visitor_traits.cpp:61 - -// Traits specializations. -namespace TAO -{ - -#if !defined (_CSD_FRAMEWORK_STRATEGY__TRAITS_) -#define _CSD_FRAMEWORK_STRATEGY__TRAITS_ - - template<> - struct TAO_CSD_FW_Export Objref_Traits< ::CSD_Framework::Strategy> - { - static ::CSD_Framework::Strategy_ptr duplicate ( - ::CSD_Framework::Strategy_ptr - ); - static void release ( - ::CSD_Framework::Strategy_ptr - ); - static ::CSD_Framework::Strategy_ptr nil (void); - static ::CORBA::Boolean marshal ( - ::CSD_Framework::Strategy_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ - -#if !defined (_CSD_FRAMEWORK_POA__TRAITS_) -#define _CSD_FRAMEWORK_POA__TRAITS_ - - template<> - struct TAO_CSD_FW_Export Objref_Traits< ::CSD_Framework::POA> - { - static ::CSD_Framework::POA_ptr duplicate ( - ::CSD_Framework::POA_ptr - ); - static void release ( - ::CSD_Framework::POA_ptr - ); - static ::CSD_Framework::POA_ptr nil (void); - static ::CORBA::Boolean marshal ( - ::CSD_Framework::POA_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ -} - -#include /**/ "ace/post.h" - -#endif /* ifndef */ - - diff --git a/TAO/tao/CSD_Framework/CSD_FrameworkC.inl b/TAO/tao/CSD_Framework/CSD_FrameworkC.inl deleted file mode 100644 index c944d806c1f..00000000000 --- a/TAO/tao/CSD_Framework/CSD_FrameworkC.inl +++ /dev/null @@ -1,27 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - diff --git a/TAO/tao/CSD_Framework/CSD_Framework_Loader.cpp b/TAO/tao/CSD_Framework/CSD_Framework_Loader.cpp deleted file mode 100644 index 9163e6995dc..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Framework_Loader.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// $Id$ - -#include "CSD_Framework_Loader.h" -#include "CSD_Object_Adapter_Factory.h" -#include "CSD_Strategy_Repository.h" -#include "ace/Dynamic_Service.h" - -ACE_RCSID (CSD_Framework, - CSD_Framework_Loader, - "$Id$") - -#include "tao/ORB_Core.h" - -int -TAO_CSD_Framework_Loader::init (void) -{ - ACE_Service_Config::process_directive (ace_svc_desc_TAO_CSD_Object_Adapter_Factory); - - TAO_ORB_Core::set_poa_factory ("TAO_CSD_Object_Adapter_Factory", - "dynamic TAO_CSD_Object_Adapter_Factory Service_Object * _make_TAO_CSD_Object_Adapter_Factory()"); - - - ACE_Service_Config::process_directive (ace_svc_desc_TAO_CSD_Strategy_Repository); - - return 0; -} diff --git a/TAO/tao/CSD_Framework/CSD_Framework_Loader.h b/TAO/tao/CSD_Framework/CSD_Framework_Loader.h deleted file mode 100644 index 5a13ed5f13f..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Framework_Loader.h +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_Framework_Loader.h - * - * $Id$ - * - * Header file for loading CSD framework service objects. - * - * @author Yan Dai (dai_y@ociweb.com) - */ -//============================================================================= - -#ifndef TAO_CSD_FRAMEWORK_LOADER_H -#define TAO_CSD_FRAMEWORK_LOADER_H -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_CSD_Framework_Loader - * - * @brief TAO_CSD_Framework_Loader. - * - * This class acts as a facade for the CSD_Framework library to the - * ORB. - */ -class TAO_CSD_FW_Export TAO_CSD_Framework_Loader -{ - public: - /// Used to force the initialization of the ORB code. - static int init (void); -}; - -#include /**/ "ace/post.h" -#endif /* TAO_CSD_FRAMEWORK_LOADER_H */ diff --git a/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp b/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp deleted file mode 100644 index 56a46b61c18..00000000000 --- a/TAO/tao/CSD_Framework/CSD_ORBInitializer.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// $Id$ -#include "CSD_ORBInitializer.h" - -#if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0 - -ACE_RCSID (CSD_Framework, - CSD_ORBInitializer, - "$Id$") - -#include "CSD_Object_Adapter_Factory.h" - -TAO_CSD_ORBInitializer::TAO_CSD_ORBInitializer () -{ -} - -void -TAO_CSD_ORBInitializer::pre_init ( - PortableInterceptor::ORBInitInfo_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -TAO_CSD_ORBInitializer::post_init ( - PortableInterceptor::ORBInitInfo_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - - -#endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */ diff --git a/TAO/tao/CSD_Framework/CSD_ORBInitializer.h b/TAO/tao/CSD_Framework/CSD_ORBInitializer.h deleted file mode 100644 index 0b661e2dd7c..00000000000 --- a/TAO/tao/CSD_Framework/CSD_ORBInitializer.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_ORBInitializer.h - * - * $Id$ - * - * @author Yan Dai (dai_y@ociweb.com) - */ -//============================================================================= - - -#ifndef TAO_CSD_ORB_INITIALIZER_H -#define TAO_CSD_ORB_INITIALIZER_H - -#include /**/ "ace/pre.h" - -#include "tao/orbconf.h" - -#if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0 - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -//#include "tao/PortableInterceptorC.h" -#include "tao/LocalObject.h" -#include "tao/PI/ORBInitializerC.h" - -// This is to remove "inherits via dominance" warnings from MSVC. -// MSVC is being a little too paranoid. -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/// CSD ORB initializer. -class TAO_CSD_FW_Export TAO_CSD_ORBInitializer : - public virtual PortableInterceptor::ORBInitializer, - public virtual TAO_Local_RefCounted_Object -{ -public: - - TAO_CSD_ORBInitializer (); - - virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); -}; - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_ORB_INITIALIZER_H */ diff --git a/TAO/tao/CSD_Framework/CSD_Object_Adapter.cpp b/TAO/tao/CSD_Framework/CSD_Object_Adapter.cpp deleted file mode 100644 index cd599fd37e2..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Object_Adapter.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -#include "CSD_Object_Adapter.h" -#include "CSD_Strategy_Proxy.h" -#include "CSD_POA.h" - -ACE_RCSID (CSD_Framework, - CSD_Object_Adapter, - "$Id$") - -TAO_CSD_Object_Adapter::TAO_CSD_Object_Adapter ( - const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters, - TAO_ORB_Core &orb_core) - : TAO_Object_Adapter (creation_parameters, orb_core) -{ - -} - -TAO_CSD_Object_Adapter::~TAO_CSD_Object_Adapter () -{ -} - -void -TAO_CSD_Object_Adapter::do_dispatch ( - TAO_ServerRequest& req, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL) -{ - TAO_Root_POA& poa = upcall.poa (); - TAO_CSD_POA* csd_poa = dynamic_cast<TAO_CSD_POA*> (&poa); - - if (csd_poa == 0) - { - ACE_THROW (CORBA::BAD_PARAM ()); - } - - TAO::CSD::Strategy_Proxy& proxy - = csd_poa->servant_dispatching_strategy_proxy (); - proxy.dispatch_request (req, upcall ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - diff --git a/TAO/tao/CSD_Framework/CSD_Object_Adapter.h b/TAO/tao/CSD_Framework/CSD_Object_Adapter.h deleted file mode 100644 index 83deb3c96b6..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Object_Adapter.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_Object_Adapter.h - * - * $Id$ - * - * @author Yan Dai (dai_y@ociweb.com) - */ -//============================================================================= - - -#ifndef TAO_CSD_OBJECT_ADAPTER_H -#define TAO_CSD_OBJECT_ADAPTER_H -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/Object_Adapter.h" - -/** - * @class TAO_CSD_Object_Adapter - * - * @brief Defines the CSD version Object Adapter which overrides - * default dispatch implementation. - * - * This class will be used as a facade for the CSD POAs in a server - */ -class TAO_CSD_FW_Export TAO_CSD_Object_Adapter : public TAO_Object_Adapter -{ -public: - - /// Constructor - TAO_CSD_Object_Adapter (const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters, - TAO_ORB_Core &orb_core); - - /// Destructor - virtual ~TAO_CSD_Object_Adapter (void); - - /// Hand the request to the Service_Dispatching_Strategy_Proxy for - /// dispatching. - virtual void do_dispatch (TAO_ServerRequest& req, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL); -}; - - -#include /**/ "ace/post.h" -#endif /* TAO_CSD_OBJECT_ADAPTER_H */ diff --git a/TAO/tao/CSD_Framework/CSD_Object_Adapter_Factory.cpp b/TAO/tao/CSD_Framework/CSD_Object_Adapter_Factory.cpp deleted file mode 100644 index 7943eda6a5d..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Object_Adapter_Factory.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// $Id$ - -#include "CSD_Object_Adapter_Factory.h" -#include "CSD_Strategy_Repository.h" -#include "CSD_Object_Adapter.h" -#include "CSD_ORBInitializer.h" -#include "CSD_Default_Servant_Dispatcher.h" -#include "tao/ORB_Core.h" -#include "tao/ORBInitializer_Registry.h" -#include "ace/Dynamic_Service.h" - -ACE_RCSID (CSD_Framework, - CSD_Object_Adapter_Factory, - "$Id$") - - -TAO_CSD_Object_Adapter_Factory::TAO_CSD_Object_Adapter_Factory (void) -{ -} - -TAO_Adapter* -TAO_CSD_Object_Adapter_Factory::create (TAO_ORB_Core *oc) -{ - // Create the CSD object adapter. - TAO_CSD_Object_Adapter *object_adapter = 0; - ACE_NEW_RETURN (object_adapter, - TAO_CSD_Object_Adapter (oc->server_factory ()-> - active_object_map_creation_parameters (), - *oc), - 0); - - // Create and register the CSD servant dispatcher. - TAO_CSD_Default_Servant_Dispatcher * csd_servant_dispatcher = 0; - ACE_NEW_RETURN (csd_servant_dispatcher, - TAO_CSD_Default_Servant_Dispatcher, - 0); - object_adapter->servant_dispatcher (csd_servant_dispatcher); - - return object_adapter; -} - -int -TAO_CSD_Object_Adapter_Factory::init (int /* argc */, - ACE_TCHAR* /* argv */ []) -{ - TAO_CSD_Strategy_Repository *repo = - ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ("TAO_CSD_Strategy_Repository"); - - if (repo != 0) - repo->init(0,0); - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - /// Register the Messaging ORBInitializer. - PortableInterceptor::ORBInitializer_ptr temp_orb_initializer = - PortableInterceptor::ORBInitializer::_nil (); - - ACE_NEW_THROW_EX (temp_orb_initializer, - TAO_CSD_ORBInitializer, - CORBA::NO_MEMORY ( - CORBA::SystemException::_tao_minor_code ( - TAO::VMCID, - ENOMEM), - CORBA::COMPLETED_NO)); - ACE_TRY_CHECK; - - PortableInterceptor::ORBInitializer_var orb_initializer = - temp_orb_initializer; - - PortableInterceptor::register_orb_initializer (orb_initializer.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "(%P | %t) Caught exception:"); - return -1; - } - ACE_ENDTRY; - - return 0; -} - - -ACE_FACTORY_DEFINE (TAO_CSD_FW, TAO_CSD_Object_Adapter_Factory) -ACE_STATIC_SVC_DEFINE (TAO_CSD_Object_Adapter_Factory, - ACE_TEXT ("TAO_CSD_Object_Adapter_Factory"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_CSD_Object_Adapter_Factory), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) diff --git a/TAO/tao/CSD_Framework/CSD_Object_Adapter_Factory.h b/TAO/tao/CSD_Framework/CSD_Object_Adapter_Factory.h deleted file mode 100644 index 9deab152daf..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Object_Adapter_Factory.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_Object_Adapter_Factory.h - * - * $Id$ - * - * @author Yan Dai (dai_y@ociweb.com) - */ -//============================================================================= - - -#ifndef TAO_CSD_OBJECT_ADAPTER_FACTORY_H -#define TAO_CSD_OBJECT_ADAPTER_FACTORY_H -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Adapter_Factory.h" -#include "ace/Service_Config.h" - - -class TAO_CSD_FW_Export TAO_CSD_Object_Adapter_Factory : public TAO_Adapter_Factory -{ -public: - /// Constructor - TAO_CSD_Object_Adapter_Factory (void); - - // = The TAO_Adapter_Factory methods, please read tao/Adapter.h for - // details. - virtual TAO_Adapter *create (TAO_ORB_Core *orb_core); - - virtual int init (int argc, - ACE_TCHAR* argv[]); -}; - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO_CSD_FW, TAO_CSD_Object_Adapter_Factory) -ACE_FACTORY_DECLARE (TAO_CSD_FW, TAO_CSD_Object_Adapter_Factory) - -#include /**/ "ace/post.h" -#endif /* TAO_CSD_OBJECT_ADAPTER_FACTORY_H */ diff --git a/TAO/tao/CSD_Framework/CSD_POA.cpp b/TAO/tao/CSD_Framework/CSD_POA.cpp deleted file mode 100644 index 98ec63d864e..00000000000 --- a/TAO/tao/CSD_Framework/CSD_POA.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// $Id$ - - -#include "CSD_POA.h" -#include "CSD_Strategy_Repository.h" -#include "CSD_Strategy_Base.h" - -#include "ace/Dynamic_Service.h" - -ACE_RCSID (CSD_Framework, - CSD_POA, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_POA.inl" -#endif /* ! __ACE_INLINE__ */ - -// Implementation skeleton constructor -TAO_CSD_POA::TAO_CSD_POA (const String &name, - TAO_POA_Manager &poa_manager, - const TAO_POA_Policy_Set &policies, - TAO_Root_POA *parent, - ACE_Lock &lock, - TAO_SYNCH_MUTEX &thread_lock, - TAO_ORB_Core &orb_core, - TAO_Object_Adapter *object_adapter - ACE_ENV_ARG_DECL) -: TAO_Regular_POA (name, - poa_manager, - policies, - parent, - lock, - thread_lock, - orb_core, - object_adapter - ACE_ENV_ARG_PARAMETER) -{ - ACE_NEW_THROW_EX (this->sds_proxy_, - TAO::CSD::Strategy_Proxy (), - CORBA::NO_MEMORY ()); - ACE_CHECK; -} - - -// Implementation skeleton destructor -TAO_CSD_POA::~TAO_CSD_POA (void) -{ - delete this->sds_proxy_; -} - -void TAO_CSD_POA::set_csd_strategy ( - ::CSD_Framework::Strategy_ptr strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (CORBA::is_nil (strategy)) - { - ACE_THROW (CORBA::BAD_PARAM ()); - } - this->sds_proxy_->custom_strategy (strategy); -} - -TAO_Root_POA * -TAO_CSD_POA::new_POA (const String &name, - TAO_POA_Manager &poa_manager, - const TAO_POA_Policy_Set &policies, - TAO_Root_POA *parent, - ACE_Lock &lock, - TAO_SYNCH_MUTEX &thread_lock, - TAO_ORB_Core &orb_core, - TAO_Object_Adapter *object_adapter - ACE_ENV_ARG_DECL) -{ - TAO_CSD_POA *poa = 0; - - ACE_NEW_THROW_EX (poa, - TAO_CSD_POA (name, - poa_manager, - policies, - parent, - lock, - thread_lock, - orb_core, - object_adapter - ACE_ENV_ARG_PARAMETER), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - TAO_CSD_Strategy_Repository *repo = - ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ("TAO_CSD_Strategy_Repository"); - - - CSD_Framework::Strategy_var strategy = repo->find (name); - - if (! CORBA::is_nil (strategy.in ())) - { - poa->set_csd_strategy (strategy.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - - return poa; -} - -void TAO_CSD_POA::poa_activated_hook () -{ - this->sds_proxy_->poa_activated_event (); -} - -void TAO_CSD_POA::poa_deactivated_hook () -{ - this->sds_proxy_->poa_deactivated_event (); -} - -void TAO_CSD_POA::servant_activated_hook (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - this->sds_proxy_->servant_activated_event (servant, oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void TAO_CSD_POA::servant_deactivated_hook (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - this->sds_proxy_->servant_deactivated_event (servant, oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} diff --git a/TAO/tao/CSD_Framework/CSD_POA.h b/TAO/tao/CSD_Framework/CSD_POA.h deleted file mode 100644 index 8038537b45d..00000000000 --- a/TAO/tao/CSD_Framework/CSD_POA.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CSD_POA.h - * - * $Id$ - * - * @author Yan Dai (dai_y@ociweb.com) - */ -//============================================================================= - -#ifndef TAO_CSD_POA_H -#define TAO_CSD_POA_H - -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/Regular_POA.h" -#include "CSD_Strategy_Proxy.h" - - -/** - * @class TAO_CSD_POA - * - * @brief Implementation of the CSD_Framework::POA interface. - * - * Implementation of the CSD_Framework::POA interface. - */ -class TAO_CSD_FW_Export TAO_CSD_POA - : public virtual CSD_Framework::POA, - public virtual TAO_Regular_POA -{ -public: - //Constructor - TAO_CSD_POA (const String &name, - TAO_POA_Manager &poa_manager, - const TAO_POA_Policy_Set &policies, - TAO_Root_POA *parent, - ACE_Lock &lock, - TAO_SYNCH_MUTEX &thread_lock, - TAO_ORB_Core &orb_core, - TAO_Object_Adapter *object_adapter - ACE_ENV_ARG_DECL); - - //Destructor - virtual ~TAO_CSD_POA (void); - - /// Pass the Strategy object reference to the CSD poa. - virtual - void set_csd_strategy ( - ::CSD_Framework::Strategy_ptr s - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// Hook - The POA has been (or is being) activated. - virtual void poa_activated_hook (); - - /// Hook - The POA has been deactivated. - virtual void poa_deactivated_hook (); - - /// Hook - A servant has been activated. - virtual void servant_activated_hook (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// Hook - A servant has been deactivated. - virtual void servant_deactivated_hook (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - ///Method for creating new CSD POA. - TAO_Root_POA * new_POA (const String &name, - TAO_POA_Manager &poa_manager, - const TAO_POA_Policy_Set &policies, - TAO_Root_POA *parent, - ACE_Lock &lock, - TAO_SYNCH_MUTEX &thread_lock, - TAO_ORB_Core &orb_core, - TAO_Object_Adapter *object_adapter - ACE_ENV_ARG_DECL); - - /// Servant Dispatching Strategy proxy accessor. - TAO::CSD::Strategy_Proxy& - servant_dispatching_strategy_proxy (void) const; - -private: - - TAO::CSD::Strategy_Proxy* sds_proxy_; -}; - - -#if defined (__ACE_INLINE__) -# include "CSD_POA.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_POA_H */ - diff --git a/TAO/tao/CSD_Framework/CSD_POA.inl b/TAO/tao/CSD_Framework/CSD_POA.inl deleted file mode 100644 index 7a9aef6f63a..00000000000 --- a/TAO/tao/CSD_Framework/CSD_POA.inl +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - - - -ACE_INLINE -TAO::CSD::Strategy_Proxy& -TAO_CSD_POA::servant_dispatching_strategy_proxy (void) const -{ - return *sds_proxy_; -} - diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Base.cpp b/TAO/tao/CSD_Framework/CSD_Strategy_Base.cpp deleted file mode 100644 index c6cb6881d51..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Base.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "CSD_Strategy_Base.h" -#include "CSD_POA.h" -#include "CSD_Strategy_Proxy.h" -#include "tao/PortableServer/Root_POA.h" -#include "tao/PortableServer/POAManager.h" -#include "tao/PortableServer/Servant_Base.h" -#include "tao/TAO_Server_Request.h" - -ACE_RCSID (CSD_Framework, - CSD_Strategy_Base, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_Strategy_Base.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::Strategy_Base::~Strategy_Base() -{ -} - -CORBA::Boolean -TAO::CSD::Strategy_Base::apply_to (PortableServer::POA_ptr poa - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (CORBA::is_nil(poa)) - { - if (TAO_debug_level > 0) - ACE_ERROR((LM_ERROR, - ACE_TEXT("(%P|%t) CSD Strategy cannot ") - ACE_TEXT("be applied to a nil POA.\n"))); - return false; - } - - if (!CORBA::is_nil(this->poa_.in())) - { - if (TAO_debug_level > 0) - ACE_ERROR((LM_ERROR, - ACE_TEXT("(%P|%t) CSD Strategy already ") - ACE_TEXT("applied to a POA.\n"))); - return false; - } - - // The POA is a local interface (IDL terminology), and thus we know that - // we can downcast the POA_ptr to its (TAO) implementation type. - TAO_CSD_POA* poa_impl = dynamic_cast<TAO_CSD_POA*>(poa); - - if (poa_impl == 0) - { - if (TAO_debug_level > 0) - ACE_ERROR((LM_ERROR, - ACE_TEXT("(%P|%t) CSD Strategy cannot ") - ACE_TEXT("be applied to a non CSD POA.\n"))); - return false; - } - - // We need to check to see if the POA is already "active". If this is - // the case, then we need to handle the poa_activated_event() right now. - // If the POA is not already "active", then we can just wait until it - // does get activated, and we (the strategy) will be informed of the - // poa_activated_event() at that time. - if (poa_impl->tao_poa_manager().get_state() == - PortableServer::POAManager::ACTIVE) - { - // The POA is already "active" (since its POAManager is active). - // We need to "raise" the poa_activated_event() now. Otherwise, - // the event will be raised when the POAManager does become active. - if (!this->poa_activated_event()) - { - // An error has been already been reported to the log with - // the detailed reason for the failure to handle the event. - return false; - } - } - - // Set the CSD Strategy_Base on the strategy proxy object owned by the POA. - bool strategy_set = false; - ACE_TRY_NEW_ENV - { - poa_impl->set_csd_strategy (this ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - strategy_set = true; - } - ACE_CATCHANY - { - } - ACE_ENDTRY; - - if (! strategy_set) - { - // We need to make sure that we raise a poa_deactivated_event() if - // we earlier raised a poa_activated_event(). - this->poa_deactivated_event(); - - // An error has been already been reported to the log with - // the detailed reason why the proxy will not accept the - // custom strategy. - return false; - } - - // Save a duplicate of the poa into our data member. - this->poa_ = PortableServer::POA::_duplicate (poa); - - // Success - return true; -} - - -void -TAO::CSD::Strategy_Base::servant_activated_event_i - (PortableServer::Servant , - const PortableServer::ObjectId& - ACE_ENV_ARG_DECL) -{ - // do nothing. -} - - -void -TAO::CSD::Strategy_Base::servant_deactivated_event_i - (PortableServer::Servant, - const PortableServer::ObjectId& - ACE_ENV_ARG_DECL) -{ - // do nothing. -} diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Base.h b/TAO/tao/CSD_Framework/CSD_Strategy_Base.h deleted file mode 100644 index 3ba637c7baf..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Base.h +++ /dev/null @@ -1,172 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file Custom_Servant_Dispatching_Strategy.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_FW_CUSTOM_SERVANT_DISPATCHING_STRATEGY_H -#define TAO_CSD_FW_CUSTOM_SERVANT_DISPATCHING_STRATEGY_H - -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Upcall.h" -#include "tao/PortableServer/Servant_Base.h" -#include "tao/TAO_Server_Request.h" -#include "tao/LocalObject.h" - - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_FrameworkC.h" - -class TAO_Root_POA; -namespace PortableServer -{ - class POAManager; -} - - -namespace TAO -{ - namespace CSD - { - /** - * @class Strategy_Base - * - * @brief Base class for all Custom Servant Dispatching Strategies. - * - * This class serves as the base class for all "custom" strategies that - * perform servant dispatching. An instance of (a subclass of) this class - * can be applied to a POA object. Any servant requests for the POA will - * be "dispatched" to this strategy object. - * - */ - class TAO_CSD_FW_Export Strategy_Base - : public CSD_Framework::Strategy, - public TAO_Local_RefCounted_Object - { - public: - - /// Result Type for dispatching method(s). - enum DispatchResult - { - // The request dispatching has been handled. - DISPATCH_HANDLED, - - // The request dispatching has been rejected. - DISPATCH_REJECTED, - - // Defer to "default" dispatching strategy (use the caller's thread). - DISPATCH_DEFERRED - }; - - /// Virtual Destructor. - virtual ~Strategy_Base(); - - /// This method is invoked to "attach" this strategy object to - /// the supplied POA. Returns true for success, and false for failure. - CORBA::Boolean apply_to(PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException)); - - protected: - /// Default Constructor. - Strategy_Base(); - - /// Subclass provides implementation to dispatch a remote request. - virtual DispatchResult dispatch_remote_request_i - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant - ACE_ENV_ARG_DECL) = 0; - - /// Subclass provides implementation to dispatch a collocated request. - virtual DispatchResult dispatch_collocated_request_i - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant - ACE_ENV_ARG_DECL) = 0; - - /// Event - The POA has been activated. - virtual bool poa_activated_event_i() = 0; - - /// Event - The POA has been deactivated. - virtual void poa_deactivated_event_i() = 0; - - /// Event - A servant has been activated. - virtual void servant_activated_event_i - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// Event - A servant has been deactivated. - virtual void servant_deactivated_event_i - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - private: - - /// Only our friend, the proxy, is allowed to invoke our private operations. - /// This allows us to not pollute the public interface of the CSD Strategy_Base - /// subclasses with methods that should never be called (except by the - /// proxy, of course). - friend class Strategy_Proxy; - - /// This CSD Strategy_Base has been asked to dispatch a (collocated or remote) - /// request. - void dispatch_request(TAO_ServerRequest& server_request, - ::TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL); - - /// Event - The POA has been activated. This happens when the POA_Manager - /// is activated. - bool poa_activated_event(); - - /// Event - The POA has been deactivated. This happens when the - /// POAManager is deactivated, or when the POA is destroyed. - void poa_deactivated_event(); - - /// Event - A servant has been activated. - void servant_activated_event(PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// Event - A servant has been deactivated. This also occurs when - /// the POA is destroyed. - void servant_deactivated_event(PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// The POA to which this strategy has been applied. - ::PortableServer::POA_var poa_; - - /// This flag indicates that the POA is currently active (true) or - /// currently inactive (false). - bool poa_activated_; - }; - } -} - - -#if defined (__ACE_INLINE__) -# include "CSD_Strategy_Base.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_FW_CUSTOM_SERVANT_DISPATCHING_STRATEGY_H */ diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl b/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl deleted file mode 100644 index 1f31a6cdcf4..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Base.inl +++ /dev/null @@ -1,138 +0,0 @@ -// -*- C++ -*- -// $Id$ -#include "tao/debug.h" - -ACE_INLINE -TAO::CSD::Strategy_Base::Strategy_Base() - : poa_activated_(false) -{ -} - -ACE_INLINE -void -TAO::CSD::Strategy_Base::dispatch_request - (TAO_ServerRequest& server_request, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL) -{ - DispatchResult result; - - if (server_request.collocated()) - { - result = this->dispatch_collocated_request_i(server_request, - upcall.user_id(), - this->poa_.in(), - server_request.operation(), - upcall.servant() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - else - { - result = this->dispatch_remote_request_i(server_request, - upcall.user_id(), - this->poa_.in(), - server_request.operation(), - upcall.servant() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - switch (result) - { - case DISPATCH_HANDLED: - // Do nothing. Everything has been handled. - break; - - case DISPATCH_REJECTED: - if (server_request.collocated ()) - { - CORBA::NO_IMPLEMENT ex; - ex._raise (); - } - else - { - // Raise an appropriate SystemException if the request is expecting - // a reply. - if (!server_request.sync_with_server() && - server_request.response_expected() && - !server_request.deferred_reply()) - { - CORBA::NO_IMPLEMENT ex; - server_request.tao_send_reply_exception(ex); - } - } - break; - - case DISPATCH_DEFERRED: - // Perform the "default" dispatching strategy logic for this request - // right now, using the current thread. - upcall.servant()->_dispatch(server_request, - (void*)&upcall - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - break; - - default: - if (TAO_debug_level > 0) - ACE_ERROR((LM_ERROR, - ACE_TEXT("(%P|%t) Unknown result (%d) from call to ") - ACE_TEXT("dispatch_remote_request_i().\n"), result)); - // Since we do not know what to do here, just do the minimum, which - // treats this case just like the DISPATCH_HANDLED case, for better - // or worse. Hitting this default case means a coding error. - break; - } -} - - -ACE_INLINE -bool -TAO::CSD::Strategy_Base::poa_activated_event() -{ - // Notify the subclass of the event, saving the result. - this->poa_activated_ = this->poa_activated_event_i(); - - // Return the result - return this->poa_activated_; -} - -ACE_INLINE -void -TAO::CSD::Strategy_Base::poa_deactivated_event() -{ - if (this->poa_activated_) - { - this->poa_activated_ = false; - - // Notify the subclass of the event. - this->poa_deactivated_event_i(); - - // Reset the poa to nil to decrement the reference count. - // This will break the circular dependency of the deletion - // of the CSD POA. - this->poa_ = 0; - } -} - -ACE_INLINE -void -TAO::CSD::Strategy_Base::servant_activated_event - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - this->servant_activated_event_i(servant, oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -ACE_INLINE -void -TAO::CSD::Strategy_Base::servant_deactivated_event - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - this->servant_deactivated_event_i(servant, oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.cpp b/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.cpp deleted file mode 100644 index 063ec14f9aa..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ - -#include "CSD_Strategy_Proxy.h" -#include "tao/TAO_Server_Request.h" -#include "tao/debug.h" - -ACE_RCSID (CSD_Framework, - CSD_Strategy_Base, - "$Id$") - - -#if !defined (__ACE_INLINE__) -# include "CSD_Strategy_Proxy.inl" -#endif /* ! __ACE_INLINE__ */ - - -bool -TAO::CSD::Strategy_Proxy::custom_strategy - (CSD_Framework::Strategy_ptr strategy) -{ - if (this->strategy_impl_) - { - if (TAO_debug_level > 0) - ACE_ERROR((LM_ERROR, - ACE_TEXT("(%P|%t) Error - TAO::CSD::Strategy_Proxy ") - ACE_TEXT("object already has a custom strategy.\n"))); - - return false; - } - - if (CORBA::is_nil(strategy)) - { - if (TAO_debug_level > 0) - ACE_ERROR((LM_ERROR, - ACE_TEXT("(%P|%t) Error - TAO::CSD::Strategy_Proxy ") - ACE_TEXT("supplied with a NIL custom strategy.\n"))); - - return false; - } - - // We need to bump up the reference count of the strategy before saving - // it off into our handle (smart pointer) data member. - this->strategy_ = CSD_Framework::Strategy::_duplicate(strategy); - this->strategy_impl_ = dynamic_cast <TAO::CSD::Strategy_Base*> (strategy); - - return true; -} diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.h b/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.h deleted file mode 100644 index 78ffea92778..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.h +++ /dev/null @@ -1,110 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_Strategy_Proxy.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_SERVANT_DISPATCHING_STRATEGY_PROXY_H -#define TAO_SERVANT_DISPATCHING_STRATEGY_PROXY_H - -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" - -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Upcall.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_Strategy_Base.h" - -class TAO_ServerRequest; - - -namespace TAO -{ - namespace CSD - { - /** - * @class Strategy_Proxy - * - * @brief Proxy class for the Custom Servant Dispatching Strategy. - * - * If no custom servant dispatching strategy is provided to the proxy, - * then the "default servant dispatching strategy" logic is used. - */ - class TAO_CSD_FW_Export Strategy_Proxy - { - public: - - /// Default Constructor. - Strategy_Proxy(); - - /// Destructor. - ~Strategy_Proxy(); - - /// Mutator to provide the proxy with a CSD Strategy object. - /// A return value of true indicates success, and false indicates - /// failure to set the custom strategy on the proxy object. - bool custom_strategy(CSD_Framework::Strategy_ptr strategy); - - /// Invoked by the Object_Adapter using an ORB thread. - /// - /// If the proxy object holds a custom strategy object, then this method - /// will simply delegate to the custom strategy object. Otherwise, - /// this method will perform the "default servant dispatching strategy" - /// logic, preserving the original logic path as it was prior to the - /// introduction of the Custom Servant Dispatching feature. - /// - /// This method will be inlined (if inlining is turned on during the build). - /// - /// The added cost to the original logic path will be this method - /// invocation + one conditional (an is_nil() call/comparison for truth on - /// the smart pointer to the custom dispatching strategy object). - void dispatch_request(TAO_ServerRequest& server_request, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL); - - - /// Event - The POA has been (or is being) activated. - bool poa_activated_event(); - - /// Event - The POA has been deactivated. - void poa_deactivated_event(); - - /// Event - A servant has been activated. - void servant_activated_event(PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// Event - A servant has been deactivated. - void servant_deactivated_event(PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - private: - - /// Smart Pointer to a custom servant dispatching strategy object. - /// This smart pointer will be in the "nil" state when the "default" - /// strategy is to be applied. - CSD_Framework::Strategy_var strategy_; - TAO::CSD::Strategy_Base *strategy_impl_; - }; - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_Strategy_Proxy.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl b/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl deleted file mode 100644 index 320fd6dca8f..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Proxy.inl +++ /dev/null @@ -1,104 +0,0 @@ -// -*- C++ -*- -// $Id$ - - -ACE_INLINE -TAO::CSD::Strategy_Proxy::Strategy_Proxy() - : strategy_impl_(0) -{ -} - - -ACE_INLINE -TAO::CSD::Strategy_Proxy::~Strategy_Proxy() -{ - strategy_impl_ = 0; // don't delete it! The var will do it for us. -} - -ACE_INLINE -void -TAO::CSD::Strategy_Proxy::dispatch_request - (TAO_ServerRequest& server_request, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL) -{ - - if (this->strategy_impl_ == 0) - { - // This is the "default" strategy implementation. - upcall.servant()->_dispatch(server_request, - (void*)&upcall - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - else - { - // Delegate to the custom strategy object. - this->strategy_impl_->dispatch_request(server_request, - upcall - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - - -ACE_INLINE -bool -TAO::CSD::Strategy_Proxy::poa_activated_event() -{ - // Delegate to the custom strategy object (or return true if this proxy - // is not holding a custom strategy). - return (this->strategy_impl_ == 0) ? true - : this->strategy_impl_->poa_activated_event(); -} - - -ACE_INLINE -void -TAO::CSD::Strategy_Proxy::poa_deactivated_event() -{ - // We only need to do something if this proxy holds a custom strategy. - if (this->strategy_impl_) - { - // Delegate to the custom strategy object. - this->strategy_impl_->poa_deactivated_event(); - } -} - - -ACE_INLINE -void -TAO::CSD::Strategy_Proxy::servant_activated_event - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - // We only need to do something if this proxy holds a custom strategy. - if (this->strategy_impl_) - { - // Delegate to the custom strategy object. - this->strategy_impl_->servant_activated_event(servant, - oid - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - - -ACE_INLINE -void -TAO::CSD::Strategy_Proxy::servant_deactivated_event - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - // We only need to do something if this proxy holds a custom strategy. - if (this->strategy_impl_) - { - // Delegate to the custom strategy object. - this->strategy_impl_->servant_deactivated_event(servant, - oid - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Repository.cpp b/TAO/tao/CSD_Framework/CSD_Strategy_Repository.cpp deleted file mode 100644 index 2a98495e301..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Repository.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// $Id$ - -#include "CSD_Strategy_Repository.h" -#include "tao/debug.h" - -ACE_RCSID (CSD_Framework, - CSD_Strategy_Factory, - "$Id$") - - -TAO_CSD_Strategy_Repository::TAO_CSD_Strategy_Repository() -{ -} - - -TAO_CSD_Strategy_Repository::~TAO_CSD_Strategy_Repository() -{ - delete this->strategy_list_head_; -} - -int -TAO_CSD_Strategy_Repository::init(int, ACE_TCHAR **) -{ - - static int initialized = 0; - - // Only allow initialization once. - if (initialized) - return 0; - - initialized = 1; - this->strategy_list_head_ = 0; - return 0; -} - -CSD_Framework::Strategy_ptr -TAO_CSD_Strategy_Repository::find (const ACE_CString& name) -{ - - if (this->strategy_list_head_ != 0) - { - Strategy_Node *node = this->strategy_list_head_->find(name); - if (node != 0) - return CSD_Framework::Strategy::_duplicate (node->strategy_.in()); - } - - return CSD_Framework::Strategy::_nil(); -} - - -int -TAO_CSD_Strategy_Repository::add_strategy (const ACE_CString& name, - CSD_Framework::Strategy_ptr strat) -{ - Strategy_Node *node = 0; - ACE_NEW_RETURN (node, Strategy_Node(name,strat),-1); - if (this->strategy_list_head_ == 0) - this->strategy_list_head_ = node; - else - this->strategy_list_head_->add_node(node); - - if (TAO_debug_level > 3) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT("Strategy_Repository::add_strategy for %s \n"), - name.c_str ())); - } - return 0; -} - -TAO_CSD_Strategy_Repository::Strategy_Node::Strategy_Node (const ACE_CString& name, - CSD_Framework::Strategy_ptr strat) - : poa_name_(name), - strategy_(CSD_Framework::Strategy::_duplicate(strat)), - next_(0) -{ -} - -TAO_CSD_Strategy_Repository::Strategy_Node::~Strategy_Node () -{ - if (this->next_) - delete this->next_; -} - -void -TAO_CSD_Strategy_Repository::Strategy_Node::add_node(Strategy_Node *node) -{ - if (this->next_) - this->next_->add_node(node); - else - this->next_ = node; -} - -TAO_CSD_Strategy_Repository::Strategy_Node * -TAO_CSD_Strategy_Repository::Strategy_Node::find(const ACE_CString &name) -{ - if (this->poa_name_ == name) - return this; - if (this->next_) - return this->next_->find(name); - return 0; -} - - -///////////////////////////////////////////////////////////////////// - -ACE_FACTORY_DEFINE (TAO_CSD_FW, TAO_CSD_Strategy_Repository) -ACE_STATIC_SVC_DEFINE (TAO_CSD_Strategy_Repository, - ACE_TEXT ("TAO_CSD_Strategy_Repository"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_CSD_Strategy_Repository), - ACE_Service_Type::DELETE_THIS - | ACE_Service_Type::DELETE_OBJ, - 0) diff --git a/TAO/tao/CSD_Framework/CSD_Strategy_Repository.h b/TAO/tao/CSD_Framework/CSD_Strategy_Repository.h deleted file mode 100644 index d9b1ef773d0..00000000000 --- a/TAO/tao/CSD_Framework/CSD_Strategy_Repository.h +++ /dev/null @@ -1,75 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_Strategy_Repository.h - * - * $Id$ - * - * @author Yan Dai <dai_y@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_STRATEGY_FACTORY_H -#define TAO_CSD_STRATEGY_FACTORY_H - -#include /**/ "ace/pre.h" - -#include "CSD_FW_Export.h" -#include "CSD_FrameworkC.h" -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" -#include "ace/Synch.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -/** - * @class TAO_CSD_Strategy_Factory - * - * @brief An ACE_Service_Object capable of creating TP_Strategy objects. - * - * TBD - Explain in more detail. - * - */ -class TAO_CSD_FW_Export TAO_CSD_Strategy_Repository : public ACE_Service_Object -{ -public: - - /// Constructor. - TAO_CSD_Strategy_Repository(); - - /// Virtual Destructor. - virtual ~TAO_CSD_Strategy_Repository(); - - int init (int argc, ACE_TCHAR ** argv); - - /// Factory method used to create a CSD_Strategy object. - CSD_Framework::Strategy_ptr find (const ACE_CString& poa_name); - - int add_strategy (const ACE_CString& poa_name, - CSD_Framework::Strategy_ptr strategy); - -private: - struct Strategy_Node { - Strategy_Node(const ACE_CString& poa_name, - CSD_Framework::Strategy_ptr strategy); - ~Strategy_Node(); - void add_node (Strategy_Node *); - Strategy_Node *find(const ACE_CString& name); - - ACE_CString poa_name_; - CSD_Framework::Strategy_var strategy_; - Strategy_Node * next_; - }; - Strategy_Node * strategy_list_head_; -}; - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO_CSD_FW, TAO_CSD_Strategy_Repository) -ACE_FACTORY_DECLARE (TAO_CSD_FW, TAO_CSD_Strategy_Repository) - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_STRATEGY_FACTORY_H */ diff --git a/TAO/tao/CSD_Framework/diffs/CSD_Framework.diff b/TAO/tao/CSD_Framework/diffs/CSD_Framework.diff deleted file mode 100644 index 4d5e2989f73..00000000000 --- a/TAO/tao/CSD_Framework/diffs/CSD_Framework.diff +++ /dev/null @@ -1,38 +0,0 @@ ---- CSD_FrameworkA.h 2005-10-03 16:07:54.484375000 -0700 -+++ orig/CSD_FrameworkA.h 2005-10-03 13:11:38.312500000 -0700 -@@ -34,8 +34,8 @@ - #include /**/ "ace/pre.h" - - #include "CSD_FW_Export.h" --#include "CSD_FrameworkC.h" --//#include "tao/PortableServer/PortableServerA.h" -+#include "tao/orig/CSD_FrameworkC.h" -+#include "tao/PortableServer/PortableServerA.h" - - - // TAO_IDL - Generated from ---- CSD_FrameworkC.h 2005-10-03 16:08:02.500000000 -0700 -+++ orig/CSD_FrameworkC.h 2005-10-03 13:11:38.312500000 -0700 -@@ -47,7 +47,7 @@ - #include "tao/Object.h" - #include "tao/Objref_VarOut_T.h" - --#include "tao/PortableServer/PortableServer.h" -+#include "tao/PortableServer/PortableServerC.h" - - #if defined (TAO_EXPORT_MACRO) - #undef TAO_EXPORT_MACRO -@@ -305,6 +305,13 @@ - #endif /* end #if !defined */ - } - -+// TAO_IDL - Generated from -+// .\be\be_codegen.cpp:1040 -+ -+#if defined (__ACE_INLINE__) -+#include "CSD_FrameworkC.inl" -+#endif /* defined INLINE */ -+ - #include /**/ "ace/post.h" - - #endif /* ifndef */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp deleted file mode 100644 index 9117ad0b690..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "CSD_TP_Cancel_Visitor.h" -#include "CSD_TP_Request.h" - -ACE_RCSID (CSD_TP, - Cancel_Visitor, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Cancel_Visitor.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Cancel_Visitor::~TP_Cancel_Visitor() -{ -} - - -bool -TAO::CSD::TP_Cancel_Visitor::visit_request(TP_Request* request, - bool& remove_flag) -{ - // If our servant_ data member is in the 'nil' state, then - // we are supposed to cancel *ALL* requests that we visit. - // - // Otherwise, if our servant_ data member is not in the 'nil' state, - // we are supposed to cancel only requests that target our specific - // servant_. - - if ((this->servant_.in() == 0) || (request->is_target(this->servant_.in()))) - { - // Set the remove_flag to true so that this request is removed - // (and released) from the queue when we finish our visit. - remove_flag = true; - - // Cancel the request - request->cancel(); - } - - // Since we are either cancelling requests to any servant or a - // specific servant, always continue visitation. - return true; -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.h deleted file mode 100644 index 538f6899979..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.h +++ /dev/null @@ -1,85 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Cancel_Visitor.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_CANCEL_VISITOR_H -#define TAO_CSD_TP_CANCEL_VISITOR_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" -#include "tao/PortableServer/Servant_Base.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Queue_Visitor.h" - - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Cancel_Visitor - * - * @brief Used to extract/cancel request(s) from the queue. - * - * This visitor is used to cancel certain requests in the queue - * as they are visited. - * - * Note that this is currently implemented to cancel *all* - * requests in the queue, or requests that are targeted for a specific - * servant. This could be extended in the future to perhaps - * cancel all requests that have the same operation name, or something - * else. - * - */ - class TAO_CSD_TP_Export TP_Cancel_Visitor : public TP_Queue_Visitor - { - public: - - /// Default Constructor - cancel *all* requests. - TP_Cancel_Visitor(); - - /// Constructor with provided servant - cancel requests that - /// target the supplied servant. - TP_Cancel_Visitor(PortableServer::Servant servant); - - /// Virtual Destructor. - virtual ~TP_Cancel_Visitor(); - - /// Returns true to continue visitation. Returns false to stop - /// visitation. Sets the remove_flag to true if the request should - /// be removed from the queue as a result of the visit. Leaves the - /// remove_flag alone otherwise. - virtual bool visit_request(TP_Request* request, bool& remove_flag); - - - private: - - /// Left as nil if we are to cancel all requests, or set to a specific - /// servant if only requests targeting that servant should be cancelled. - PortableServer::ServantBase_var servant_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Cancel_Visitor.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_DISPATCHABLE_VISITOR_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl deleted file mode 100644 index b5d698f1f7a..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Cancel_Visitor::TP_Cancel_Visitor() -{ -} - - -ACE_INLINE -TAO::CSD::TP_Cancel_Visitor::TP_Cancel_Visitor(PortableServer::Servant servant) - : servant_(servant) -{ - // This try-catch block is not really necessary for current implementation - // since the _add_ref does not throw exception, but we have to add it to - // satisfy the non-exception builds. If _add_ref really throws an exception - // then this constructor needs deal with the exception. - ACE_TRY_NEW_ENV - { - this->servant_->_add_ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - } - ACE_ENDTRY; -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp deleted file mode 100644 index b43ec670d51..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// $Id$ - -#include "CSD_TP_Collocated_Asynch_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Collocated_Asynch_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Collocated_Asynch_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Collocated_Asynch_Request::~TP_Collocated_Asynch_Request() -{ -} - - -void -TAO::CSD::TP_Collocated_Asynch_Request::prepare_for_queue_i() -{ - this->do_clone(); -} - - -void -TAO::CSD::TP_Collocated_Asynch_Request::dispatch_i() -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - this->do_dispatch(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#if defined (TAO_HAS_EXCEPTIONS) - ACE_CATCHALL - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#endif - ACE_ENDTRY; -} - - -void -TAO::CSD::TP_Collocated_Asynch_Request::cancel_i() -{ - this->do_cancel(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h deleted file mode 100644 index bf7b2a17b37..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h +++ /dev/null @@ -1,87 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Collocated_Asynch_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_COLLOCATED_ASYNCH_REQUEST_H -#define TAO_CSD_TP_COLLOCATED_ASYNCH_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Corba_Request.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Collocated_Asynch_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Collocated_Asynch_Request> - TP_Collocated_Asynch_Request_Handle; - - /** - * @class TP_Collocated_Asynch_Request - * - * @brief Represents a "queue-able", collocated, asynchronous, - * CORBA request. - * - * This kind request is one-way collocated request with the default - * SYNC_SCOPE policy (SYNC_WITH_TRANSPORT) applied. It is cloned - * before enqueuing and the "enqueuing" thread never blocks. - */ - class TAO_CSD_TP_Export TP_Collocated_Asynch_Request - : public TP_Corba_Request - { - public: - - /// Constructor. - TP_Collocated_Asynch_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state); - - /// Virtual Destructor. - virtual ~TP_Collocated_Asynch_Request(); - - - protected: - - /// Prepare this TP_Collocated_Asynch_Request object to be placed - /// into the request queue. This will cause the underlying - /// TAO_ServerRequest object to be cloned. - virtual void prepare_for_queue_i(); - - /// Dispatch the request to the servant. - virtual void dispatch_i(); - - /// Cancel the request. - virtual void cancel_i(); - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Collocated_Asynch_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_COLLOCATED_ASYNCH_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl deleted file mode 100644 index 94a7238bd46..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl +++ /dev/null @@ -1,20 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Collocated_Asynch_Request::TP_Collocated_Asynch_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state) - : TP_Corba_Request(object_id, - poa, - operation, - servant, - servant_state, - server_request) -{ -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp deleted file mode 100644 index 58e868c835a..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// $Id$ - -#include "CSD_TP_Collocated_Synch_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Collocated_Synch_Request, - "$Id$") - -#include "tao/ORB_Core.h" - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Collocated_Synch_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Collocated_Synch_Request::~TP_Collocated_Synch_Request() -{ -} - - -void -TAO::CSD::TP_Collocated_Synch_Request::dispatch_i() -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - this->do_dispatch(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // We need to save off a copy of the exception. - this->exception_ = ACE_ANY_EXCEPTION._tao_duplicate(); - } -#if defined (TAO_HAS_EXCEPTIONS) - ACE_CATCHALL - { - this->exception_ - = new CORBA::UNKNOWN (CORBA::SystemException::_tao_minor_code - (TAO_UNHANDLED_SERVER_CXX_EXCEPTION, 0), - CORBA::COMPLETED_MAYBE); - } -#endif - ACE_ENDTRY; - - this->synch_helper_.dispatched(); -} - - -void -TAO::CSD::TP_Collocated_Synch_Request::cancel_i() -{ - this->synch_helper_.cancelled(); -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h deleted file mode 100644 index 732158e3c02..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h +++ /dev/null @@ -1,106 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Collocated_Synch_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_COLLOCATED_SYNCH_REQUEST_H -#define TAO_CSD_TP_COLLOCATED_SYNCH_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Corba_Request.h" -#include "CSD_TP_Synch_Helper.h" -#include "tao/Exception.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Collocated_Synch_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Collocated_Synch_Request> - TP_Collocated_Synch_Request_Handle; - - /** - * @class TP_Collocated_Synch_Request - * - * @brief Represents a "queue-able", synchronous, collocated, - * CORBA request. - * - * This kind request is the two-way or oneway(with SYNC_WITH_TARGET - * policy applied) collocated request. It is NOT cloned before - * enqueuing and the "enqueuing" thread will block until the request - * is dispatched/handled or cancelled. - */ - class TAO_CSD_TP_Export TP_Collocated_Synch_Request - : public TP_Corba_Request - { - public: - - /// Constructor. - TP_Collocated_Synch_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state); - - /// Virtual Destructor. - virtual ~TP_Collocated_Synch_Request(); - - /// Wait until the request has been dispatched (and completed), or - /// until it has been cancelled. - /// Returns true if the request has been dispatched, and returns - /// false if the request has been cancelled. - bool wait(ACE_ENV_SINGLE_ARG_DECL); - - - protected: - - /// Note that we do not override our base class implementation of - /// prepare_for_queue_i() (which does nothing), because we don't - /// need to clone the Server Request object. - - /// Dispatch the request to the servant. - virtual void dispatch_i(); - - /// Cancel the request. - virtual void cancel_i(); - - - private: - - /// Helper used to block and unblock the thread that invokes our - /// wait() method. - TP_Synch_Helper synch_helper_; - - /// Set to NULL initially, and will only be set thereafter if an - /// exception is raised from the dispatch() call on the server_request_. - CORBA::Exception* exception_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Collocated_Synch_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_COLLOCATED_SYNCH_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl deleted file mode 100644 index 4481a463c1e..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Collocated_Synch_Request::TP_Collocated_Synch_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state) - : TP_Corba_Request(object_id, - poa, - operation, - servant, - servant_state, - server_request), - exception_(0) -{ -} - - -ACE_INLINE -bool -TAO::CSD::TP_Collocated_Synch_Request::wait(ACE_ENV_SINGLE_ARG_DECL) -{ - bool dispatched = this->synch_helper_.wait_while_pending(); - - if (dispatched) - { - // Check to see if the dispatching caused an exception to be raised. - if (this->exception_ != 0) - { - // An exception was raised during the actual dispatching to - // the servant. We need to raise the exception to our caller, - // which is the thread that made the collocated request in the - // first place. - CORBA::Exception* ex = this->exception_; - this->exception_ = 0; - -#if defined (TAO_HAS_EXCEPTIONS) - ACE_Auto_Basic_Ptr<CORBA::Exception> ex_holder(ex); - ex->_raise (); -#else - ACE_TRY_ENV.exception (ex); -#endif /* ACE_HAS_EXCEPTIONS */ - } - } - - return dispatched; - -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp deleted file mode 100644 index 657cac81be0..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -#include "CSD_TP_Collocated_Synch_With_Server_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Collocated_Synch_With_Server_Request, - "$Id$") - -#include "tao/Exception.h" - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Collocated_Synch_With_Server_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Collocated_Synch_With_Server_Request::~TP_Collocated_Synch_With_Server_Request() -{ -} - - -void -TAO::CSD::TP_Collocated_Synch_With_Server_Request::prepare_for_queue_i() -{ - // NOTE: We *NEED* clone the TAO_ServerRequest for a collocated, - // one-way SYNC_WITH_SERVER request. This is because the - // calling thread is signalled just *before* the request is - // dispatched. It's (very) possible that the calling thread - // will destroy the underlying TAO_ServerRequest object while - // the request is dispatching to servant. This is why we make - // a clone - so that we have our own copy that won't be destroyed - // while we are using it. - this->do_clone(); -} - - -void -TAO::CSD::TP_Collocated_Synch_With_Server_Request::dispatch_i() -{ - // This is done *before* we do_dispatch(). - this->synch_helper_.dispatched(); - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - this->do_dispatch(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#if defined (TAO_HAS_EXCEPTIONS) - ACE_CATCHALL - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#endif - ACE_ENDTRY; -} - - -void -TAO::CSD::TP_Collocated_Synch_With_Server_Request::cancel_i() -{ - this->synch_helper_.cancelled(); -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h deleted file mode 100644 index 39748db1853..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h +++ /dev/null @@ -1,107 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Collocated_Synch_With_Server_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_COLLOCATED_SYNCH_WITH_SERVER_REQUEST_H -#define TAO_CSD_TP_COLLOCATED_SYNCH_WITH_SERVER_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Corba_Request.h" -#include "CSD_TP_Synch_Helper.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Collocated_Synch_With_Server_Request; - typedef TAO_Intrusive_Ref_Count_Handle - <TP_Collocated_Synch_With_Server_Request> - TP_Collocated_Synch_With_Server_Request_Handle; - - /** - * @class TP_Collocated_Synch_With_Server_Request - * - * @brief Represents a "queue-able", one-way, collocated, CORBA - * request with a "Synch Scope" policy of SYNC_WITH_SERVER. - * - * This kind of request is one-way request with the SYNC_WITH_SERVER - * policy applied. It is cloned before enqueuing and the "enqueuing" - * thread will block until it is signalled by the TP_Task thread that - * will happen just before the request is dispatched or the request - * is cancelled. - */ - class TAO_CSD_TP_Export TP_Collocated_Synch_With_Server_Request - : public TP_Corba_Request - { - public: - - /// Constructor. - TP_Collocated_Synch_With_Server_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state); - - /// Virtual Destructor. - virtual ~TP_Collocated_Synch_With_Server_Request(); - - /// Wait until the request has been dispatched (but not completed), or - /// until it has been cancelled. Note that this will wait until just - /// *before* the request is dispatched by a worker thread. This is - /// different than the TP_Collocated_Synch_Request which waits until - /// just *after* the request is dispatched by a worker thread. - /// Returns true if the request has been dispatched, and returns - /// false if the request has been cancelled. - bool wait(ACE_ENV_SINGLE_ARG_DECL); - - - protected: - - /// Prepare this TP_Collocated_Synch_With_Server_Request object to be - /// placed into the request queue. This will cause the underlying - /// TAO_ServerRequest object to be cloned. - virtual void prepare_for_queue_i(); - - /// Dispatch the request to the servant. - virtual void dispatch_i(); - - /// Cancel the request. - virtual void cancel_i(); - - - private: - - /// Helper used to block and unblock the thread that invokes our - /// wait() method. - TP_Synch_Helper synch_helper_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Collocated_Synch_With_Server_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_COLLOCATED_SYNCH_WITH_SERVER_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl deleted file mode 100644 index 08dc5141fae..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -ACE_INLINE -TAO::CSD::TP_Collocated_Synch_With_Server_Request::TP_Collocated_Synch_With_Server_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state) - : TP_Corba_Request(object_id, - poa, - operation, - servant, - servant_state, - server_request) -{ -} - - -ACE_INLINE -bool -TAO::CSD::TP_Collocated_Synch_With_Server_Request::wait(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - return this->synch_helper_.wait_while_pending(); -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.cpp deleted file mode 100644 index a4a40ba6091..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#include "CSD_TP_Corba_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Corba_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Corba_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Corba_Request::~TP_Corba_Request() -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h deleted file mode 100644 index d6343e20935..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.h +++ /dev/null @@ -1,100 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Corba_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_CORBA_REQUEST_H -#define TAO_CSD_TP_CORBA_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Request.h" -#include "tao/CSD_Framework/CSD_FW_Server_Request_Wrapper.h" -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Base.h" -#include "ace/SString.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Corba_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Corba_Request> - TP_Corba_Request_Handle; - - /** - * @class TP_Corba_Request - * - * @brief Base class for "queue-able" CORBA requests. - * - * TBD - Add description - * - */ - class TAO_CSD_TP_Export TP_Corba_Request : public TP_Request - { - public: - - /// Virtual Destructor. - virtual ~TP_Corba_Request(); - - - protected: - - /// Constructor. - TP_Corba_Request(const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state, - TAO_ServerRequest& server_request); - - /// Delegate to the FW_Server_Request_Wrapper clone() method. - void do_clone(); - - /// Delegate to the FW_Server_Request_Wrapper dispatch() method. - void do_dispatch(ACE_ENV_SINGLE_ARG_DECL); - - /// Delegate to the FW_Server_Request_Wrapper cancel() method. - void do_cancel(); - - - private: - - /// The ObjectId for the target servant. - PortableServer::ObjectId object_id_; - - /// The POA. - PortableServer::POA_var poa_; - - /// The name of the IDL operation. - ACE_CString operation_; - - /// The TAO_ServerRequest object wrapper. - FW_Server_Request_Wrapper server_request_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Corba_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_CORBA_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl deleted file mode 100644 index 2047ad845d3..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Corba_Request.inl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Corba_Request::TP_Corba_Request - (const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state, - TAO_ServerRequest& server_request) - : TP_Request(servant,servant_state), - object_id_(object_id), - operation_(operation), - server_request_(server_request) -{ - this->poa_ = PortableServer::POA::_duplicate(poa); -} - - -ACE_INLINE -void -TAO::CSD::TP_Corba_Request::do_clone() -{ - this->server_request_.clone(); -} - -ACE_INLINE -void -TAO::CSD::TP_Corba_Request::do_dispatch(ACE_ENV_SINGLE_ARG_DECL) -{ - this->server_request_.dispatch(this->servant() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -ACE_INLINE -void -TAO::CSD::TP_Corba_Request::do_cancel() -{ - this->server_request_.cancel(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp deleted file mode 100644 index 4ac59c6f1fa..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ - -#include "CSD_TP_Custom_Asynch_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Custom_Asynch_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Asynch_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Custom_Asynch_Request::~TP_Custom_Asynch_Request() -{ -} - - -void -TAO::CSD::TP_Custom_Asynch_Request::dispatch_i() -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - this->execute_op(); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#if defined (TAO_HAS_EXCEPTIONS) - ACE_CATCHALL - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#endif - ACE_ENDTRY; -} - - -void -TAO::CSD::TP_Custom_Asynch_Request::cancel_i() -{ - this->cancel_op(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h deleted file mode 100644 index ee3479c2e9c..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h +++ /dev/null @@ -1,76 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Custom_Asynch_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_CUSTOM_ASYNCH_REQUEST_H -#define TAO_CSD_TP_CUSTOM_ASYNCH_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Custom_Request.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Custom_Asynch_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Custom_Asynch_Request> - TP_Custom_Asynch_Request_Handle; - - /** - * @class TP_Custom_Asynch_Request - * - * @brief Base class for "queue-able", Custom (non-CORBA), - * Synchronous requests. - * - * TBD - Add description - * - */ - class TAO_CSD_TP_Export TP_Custom_Asynch_Request - : public TP_Custom_Request - { - public: - - /// Constructor. - TP_Custom_Asynch_Request(TP_Custom_Request_Operation* op, - TP_Servant_State* servant_state); - - /// Virtual Destructor. - virtual ~TP_Custom_Asynch_Request(); - - - protected: - - /// Dispatch the request to the servant. - virtual void dispatch_i(); - - /// Cancel the request. - virtual void cancel_i(); - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Asynch_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_CUSTOM_ASYNCH_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl deleted file mode 100644 index 7281af45b9a..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Custom_Asynch_Request::TP_Custom_Asynch_Request - (TP_Custom_Request_Operation* op, - TP_Servant_State* servant_state) - : TP_Custom_Request(op,servant_state) -{ -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.cpp deleted file mode 100644 index 810858cca79..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#include "CSD_TP_Custom_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Custom_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Custom_Request::~TP_Custom_Request() -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.h deleted file mode 100644 index e4d89f40e15..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.h +++ /dev/null @@ -1,78 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Custom_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_CUSTOM_REQUEST_H -#define TAO_CSD_TP_CUSTOM_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Request.h" -#include "CSD_TP_Custom_Request_Operation.h" -#include "tao/PortableServer/Servant_Base.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Custom_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Custom_Request> - TP_Custom_Request_Handle; - - /** - * @class TP_Custom_Request - * - * @brief Base class for "queue-able" Custom (non-CORBA) requests. - * - * TBD - Add description - * - */ - class TAO_CSD_TP_Export TP_Custom_Request : public TP_Request - { - public: - - /// Virtual Destructor. - virtual ~TP_Custom_Request(); - - - protected: - - /// Constructor. - TP_Custom_Request(TP_Custom_Request_Operation* op, - TP_Servant_State* servant_state); - - void execute_op(); - void cancel_op(); - - - private: - - TP_Custom_Request_Operation_Handle op_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_CUSTOM_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.inl deleted file mode 100644 index 6b53f3cbf78..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request.inl +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Custom_Request::TP_Custom_Request - (TP_Custom_Request_Operation* op, - TP_Servant_State* servant_state) - : TP_Request(op->servant(),servant_state), - op_(op, false) -{ -} - - -ACE_INLINE -void -TAO::CSD::TP_Custom_Request::execute_op() -{ - this->op_->execute(); - - // Now drop the reference to the custom operation object. - // This is necessary so that custom operation objects can be created - // on the stack for synchronous custom requests. If we do not do this, - // then there is a race condition which could result in the stack-created - // custom operation object having a reference count of 2 when it falls - // out of scope (and destructs). Our op_ data member would be the one - // that held the other reference, and when our op_ data member destructs, - // it attempts to perform a _remove_ref() on the underlying operation - // object - which has already been destructed! Thus, we reset the op_ - // data member here to the 'nil' state - causing the _remove_ref() to - // be performed now. - this->op_ = 0; -} - - -ACE_INLINE -void -TAO::CSD::TP_Custom_Request::cancel_op() -{ - this->op_->cancel(); - - // See comments in the execute_op() method. - this->op_ = 0; -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp deleted file mode 100644 index 49617f39ea3..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#include "CSD_TP_Custom_Request_Operation.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Custom_Request_Operation, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Request_Operation.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Custom_Request_Operation::~TP_Custom_Request_Operation() -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h deleted file mode 100644 index 50673612536..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h +++ /dev/null @@ -1,96 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Custom_Request_Operation.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_CUSTOM_REQUEST_OPERATION_H -#define TAO_CSD_TP_CUSTOM_REQUEST_OPERATION_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Intrusive_Ref_Count_Base_T.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" -#include "tao/PortableServer/Servant_Base.h" -#include "ace/Synch.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Custom_Request_Operation; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Custom_Request_Operation> - TP_Custom_Request_Operation_Handle; - - - /** - * @class TP_Custom_Request_Operation - * - * @brief Base class for all custom request operations. - * - * @note The caller that creates a new TP_Custom_Request_Operation - * object needs call _add_ref () on the servant before - * constructing it and the TP_Custom_Request_Operation object - * is responsible to decrement the reference count. - * - * TBD - Add description - */ - class TAO_CSD_TP_Export TP_Custom_Request_Operation - : public TAO_Intrusive_Ref_Count_Base<ACE_SYNCH_MUTEX> - { - public: - - /// Virtual Destructor. - virtual ~TP_Custom_Request_Operation(); - - /// Invoked by a worker thread to perform the operation. - void execute(); - - /// Invoked when the request has been cancelled. - void cancel(); - - /// Used by the TP_Strategy to obtain the target servant in order - /// to construct the custom request object. Returns the servant as - /// an "in" argument (the caller does not get a new 'copy'). This - /// is useful for chaining. - PortableServer::Servant servant(); - - - protected: - - /// Constructor. - TP_Custom_Request_Operation(PortableServer::Servant servant); - - virtual void execute_i() = 0; - virtual void cancel_i() = 0; - - - private: - - PortableServer::ServantBase_var servant_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Request_Operation.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_CUSTOM_REQUEST_OPERATION_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl deleted file mode 100644 index cfdcc74f1c6..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl +++ /dev/null @@ -1,47 +0,0 @@ -// -*- C++ -*- -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Custom_Request_Operation::TP_Custom_Request_Operation - (PortableServer::Servant servant) -: servant_ (servant) -{ - // This try-catch block is not really necessary for current implementation - // since the _add_ref does not throw exception, but we have to add it to - // satisfy the non-exception builds. If _add_ref really throws an exception - // then this constructor needs deal with the exception. - ACE_TRY_NEW_ENV - { - this->servant_->_add_ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - } - ACE_ENDTRY; -} - - -ACE_INLINE -void -TAO::CSD::TP_Custom_Request_Operation::execute() -{ - this->execute_i(); -} - - -ACE_INLINE -void -TAO::CSD::TP_Custom_Request_Operation::cancel() -{ - this->cancel_i(); -} - - -ACE_INLINE -PortableServer::Servant -TAO::CSD::TP_Custom_Request_Operation::servant() -{ - return this->servant_.in(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp deleted file mode 100644 index dd9162bea02..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ - -#include "CSD_TP_Custom_Synch_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Custom_Synch_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Synch_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Custom_Synch_Request::~TP_Custom_Synch_Request() -{ -} - - -void -TAO::CSD::TP_Custom_Synch_Request::dispatch_i() -{ - this->execute_op(); - this->synch_helper_.dispatched(); -} - - -void -TAO::CSD::TP_Custom_Synch_Request::cancel_i() -{ - this->cancel_op(); - this->synch_helper_.cancelled(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h deleted file mode 100644 index a4c5e059e40..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h +++ /dev/null @@ -1,89 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Custom_Synch_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_CUSTOM_SYNCH_REQUEST_H -#define TAO_CSD_TP_CUSTOM_SYNCH_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Custom_Request.h" -#include "CSD_TP_Synch_Helper.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Custom_Synch_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Custom_Synch_Request> - TP_Custom_Synch_Request_Handle; - - /** - * @class TP_Custom_Synch_Request - * - * @brief Base class for "queue-able", Custom (non-CORBA), - * Synchronous requests. - * - * TBD - Add description - * - */ - class TAO_CSD_TP_Export TP_Custom_Synch_Request : public TP_Custom_Request - { - public: - - /// Constructor. - TP_Custom_Synch_Request(TP_Custom_Request_Operation* op, - TP_Servant_State* servant_state); - - /// Virtual Destructor. - virtual ~TP_Custom_Synch_Request(); - - /// Wait until the request has been executed (and completes), or - /// until it has been cancelled. Returns true if the request has - /// been executed/completed, and returns false if the request has - /// been cancelled. - bool wait(); - - - protected: - - /// Dispatch the request to the servant. - virtual void dispatch_i(); - - /// Cancel the request. - virtual void cancel_i(); - - - private: - - /// Helper used to block and unblock the thread that invokes our - /// wait() method. - TP_Synch_Helper synch_helper_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Custom_Synch_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_CUSTOM_SYNCH_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl deleted file mode 100644 index 18cb942160c..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl +++ /dev/null @@ -1,18 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Custom_Synch_Request::TP_Custom_Synch_Request - (TP_Custom_Request_Operation* op, - TP_Servant_State* servant_state) - : TP_Custom_Request(op,servant_state) -{ -} - - -ACE_INLINE -bool -TAO::CSD::TP_Custom_Synch_Request::wait() -{ - return this->synch_helper_.wait_while_pending(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp deleted file mode 100644 index c10b11aa53b..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ - -#include "CSD_TP_Dispatchable_Visitor.h" - -ACE_RCSID (CSD_TP, - Dispatchable_Visitor, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Dispatchable_Visitor.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Dispatchable_Visitor::~TP_Dispatchable_Visitor() -{ -} - - -bool -TAO::CSD::TP_Dispatchable_Visitor::visit_request(TP_Request* request, - bool& remove_flag) -{ - // Ask the request object if the target servant is "ready" to accept - // a request being dispatched to it. - if (request->is_ready()) - { - // Ok. This request is a "dispatchable" request. It is what we were - // hoping to find. - - // Save a copy of the request in our handle data member. - request->_add_ref(); - this->request_ = request; - - // Make sure that the queue will extract the request from the queue - // upon our return. - remove_flag = true; - - // Mark the target servant as being "busy". - request->mark_as_busy(); - - // Stop the visitation by returning false. - return false; - } - - // The target servant object of the request isn't ready, so the request - // is not considered to be a "dispatchable" request. - - // Return true to visit the next request in the queue (if there is one). - return true; -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h deleted file mode 100644 index 9f639a5e8a9..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h +++ /dev/null @@ -1,91 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Dispatchable_Visitor.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_DISPATCHABLE_VISITOR_H -#define TAO_CSD_TP_DISPATCHABLE_VISITOR_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Queue_Visitor.h" -#include "CSD_TP_Request.h" - - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Dispatchable_Visitor - * - * @brief Used to extract the first "dispatchable" request from the queue. - * - * An instance of this visitor class is used by one of the worker - * threads to locate the first "dispatchable" request in the queue. If - * such a request is visited, then this visitor will save a "copy" of - * the request, indicate that the request should be removed from the - * queue, and indicate that visitation should stop. - * - * An method is provided to retrieve a "copy" of the "dispatchable" - * request that was saved off during visitation. A nil reference - * (ie, a NULL pointer) will be returned if no dispatchable request - * was found. - * - */ - class TAO_CSD_TP_Export TP_Dispatchable_Visitor : public TP_Queue_Visitor - { - public: - - /// Default Constructor. - TP_Dispatchable_Visitor(); - - /// Virtual Destructor. - virtual ~TP_Dispatchable_Visitor(); - - /// Reset this visitor object in order to re-use it for another - /// visitation of the request queue. This sets the vistor's "result" - /// (the TP_Request* data member) to its default value (a nil handle). - void reset(); - - /// Returns true to continue visitation. Returns false to stop - /// visitation. Sets the remove_flag to true if the request should - /// be removed from the queue as a result of the visit. Leaves the - /// remove_flag alone otherwise. - virtual bool visit_request(TP_Request* request, bool& remove_flag); - - /// This returns a "copy" of the located request, or 0 if no request - /// was located. - TP_Request* request(); - - - private: - - /// A handle to the located request. - TP_Request_Handle request_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Dispatchable_Visitor.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_DISPATCHABLE_VISITOR_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl deleted file mode 100644 index ac66587e2a7..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl +++ /dev/null @@ -1,26 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Dispatchable_Visitor::TP_Dispatchable_Visitor() -{ -} - - -ACE_INLINE -void -TAO::CSD::TP_Dispatchable_Visitor::reset() -{ - // Set the handle to 0 to have it release any request it may currently - // be referencing. - this->request_ = 0; -} - - -ACE_INLINE -TAO::CSD::TP_Request* -TAO::CSD::TP_Dispatchable_Visitor::request() -{ - TP_Request_Handle handle(this->request_.in(), false); - return handle._retn(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.cpp deleted file mode 100644 index 7253794cf0b..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// $Id$ - -#include "CSD_TP_Queue.h" -#include "CSD_TP_Request.h" -#include "CSD_TP_Queue_Visitor.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Queue, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Queue.inl" -#endif /* ! __ACE_INLINE__ */ - - -void -TAO::CSD::TP_Queue::put(TP_Request* request) -{ - // The request is passed in as an "in" argument, and we would like to - // hold on to a "copy" within the queue (the linked list). We will - // perform an _add_ref() on the request now to make the queue's "copy". - request->_add_ref(); - - if (this->tail_ == 0) - { - // The tail_ is a NULL pointer only when the queue is empty. - // Make the request be the only element in the queue. - this->head_ = this->tail_ = request; - - // Make sure the request's prev_ and next_ pointers are set to NULL. - request->prev_ = request->next_ = 0; - } - else - { - // There is at least one request already in the queue. "Append" the - // supplied request object to the end of the queue. - request->prev_ = this->tail_; - request->next_ = 0; - this->tail_->next_ = request; - this->tail_ = request; - } -} - - -void -TAO::CSD::TP_Queue::accept_visitor(TP_Queue_Visitor& visitor) -{ - TP_Request* cur = this->head_; - - while (cur != 0) - { - TP_Request* prev = cur->prev_; - TP_Request* next = cur->next_; - - // Pass the current request to the visitor. Also pass-in a reference - // to the remove_from_queue flag. The visitor may decide that it - // wants to keep the current request for itself, and desires that the - // request be (surgically) removed from the queue. The visitor also - // gets to decide, via its return value, whether or not visitation - // should continue (or cease to continue). - bool remove_from_queue = false; - - bool continue_visitation = visitor.visit_request(cur,remove_from_queue); - - if (remove_from_queue) - { - // Create a local handle to release the current request once - // the handle falls out of scope. We need to do this because the - // queue "owns" a "copy" of each request in the queue. - TP_Request_Handle handle = cur; - - if (this->head_ == cur) - { - // The current request is at the front (the head_) of the queue. - - // Move the head_ to the next request in the queue. - this->head_ = next; - - if (this->head_ == 0) - { - // Not only was the current request at the front of the - // queue - it was the *only* request in the queue. - // Update the tail_ pointer now that the queue is empty. - this->tail_ = 0; - } - else - { - // Set the (new) head_ request's prev_ pointer to be NULL. - this->head_->prev_ = 0; - } - } - else if (this->tail_ == cur) - { - // The current request is not at the front of the queue, - // but it is at the back of the queue. This implies that - // the queue currently contains at least two requests - - // the current request (cur), and the previous request (prev). - // The point is that we can now assume that the 'prev' pointer - // is never NULL in this case. - this->tail_ = prev; - this->tail_->next_ = 0; - } - else - { - // The current request is not at the front or at the back. - // This implies that there are at least three requests in - // the queue. We can assume that the 'next' and 'prev' - // pointers are never NULL in this case. - prev->next_ = next; - next->prev_ = prev; - } - } - - if (!continue_visitation) - { - // The visitor doesn't want to procede with any further visitation. - // Break out of the visitation loop now. - break; - } - - // Move on to the next request in the queue. - cur = next; - } -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.h deleted file mode 100644 index 7b42cfeda59..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.h +++ /dev/null @@ -1,96 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Queue.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_QUEUE_H -#define TAO_CSD_TP_QUEUE_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -namespace TAO -{ - namespace CSD - { - - class TP_Request; - class TP_Queue_Visitor; - - /** - * @class TP_Queue - * - * @brief Queue of servant requests that need to be dispatched. - * - * This is the queue of pending servant requests that is "owned" - * by a TP_Strategy object. When an ORB thread dispatches - * a servant request to the strategy object, it will create the - * appropriate (subclass of) TP_Request object to "wrap" - * the servant request in a "queue-friendly" wrapper. The ORB thread - * will then place the TP_Request object on to the queue. Note that - * this scenario pertains to what are being called "remote requests". - * There are other scenarios in which other types of requests can - * get added to this queue. - * - * The strategy object will employ a set of worker threads that are - * responsible for "servicing" the servant requests in the queue. - * - * Note: In the future, support will be added to allow the client - * application inject "custom" TP_Request objects into - * a TP_Strategy object, causing them to be placed in - * the queue. - */ - class TAO_CSD_TP_Export TP_Queue - { - public: - - /// Default Constructor. - TP_Queue(); - - /// Destructor. - ~TP_Queue(); - - /// Place a request at the end of the queue. - void put(TP_Request* request); - - /// Returns true if the queue is empty. Returns false otherwise. - bool is_empty() const; - - /// Visitors will visit each request in the queue, from front to back, - /// and have the ability to stop visiting at any time (ie, before - /// visiting every request). - void accept_visitor(TP_Queue_Visitor& visitor); - - - private: - - /// The request at the front of the queue. - TP_Request* head_; - - /// The request at the end of the queue. - TP_Request* tail_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Queue.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_QUEUE_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.inl deleted file mode 100644 index 58adcec4744..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue.inl +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Queue::TP_Queue() - : head_(0), - tail_(0) -{ -} - - -ACE_INLINE -TAO::CSD::TP_Queue::~TP_Queue() -{ -} - - -ACE_INLINE -bool -TAO::CSD::TP_Queue::is_empty() const -{ - return (this->head_ == 0); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp deleted file mode 100644 index 95d3c39f750..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#include "CSD_TP_Queue_Visitor.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Queue_Visitor, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Queue_Visitor.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Queue_Visitor::~TP_Queue_Visitor() -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.h deleted file mode 100644 index cece3e7ffbc..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.h +++ /dev/null @@ -1,74 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Queue_Visitor.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_QUEUE_VISITOR_H -#define TAO_CSD_TP_QUEUE_VISITOR_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -namespace TAO -{ - namespace CSD - { - - class TP_Request; - - - /** - * @class TP_Queue_Visitor - * - * @brief Base class for vistors of the elements in the TP_Queue. - * - * Provides a way to perform thread-safe iteration over the - * TP_Request objects contained within a TP_Queue object. - * - * This also provides a means to encapsulate each distinct algorithm - * within a distinct subclass of TP_Queue_Visitor. - * - */ - class TAO_CSD_TP_Export TP_Queue_Visitor - { - public: - - /// Virtual Destructor. - virtual ~TP_Queue_Visitor(); - - /// Returns true to continue visitation. Return false to stop - /// visitation. Sets the remove_flag to true if the request should - /// be removed from the queue as a result of the visit. Leaves the - /// remove_flag alone otherwise. - virtual bool visit_request(TP_Request* request, bool& remove_flag) = 0; - - - protected: - - /// Default Constructor. - TP_Queue_Visitor(); - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Queue_Visitor.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_QUEUE_VISITOR_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.inl deleted file mode 100644 index 77567843234..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Queue_Visitor.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Queue_Visitor::TP_Queue_Visitor() -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.cpp deleted file mode 100644 index cf7f2642505..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// $Id$ - -#include "CSD_TP_Remote_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Remote_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Remote_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Remote_Request::~TP_Remote_Request() -{ -} - - -void -TAO::CSD::TP_Remote_Request::prepare_for_queue_i() -{ - this->do_clone(); -} - - -void -TAO::CSD::TP_Remote_Request::dispatch_i() -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - this->do_dispatch(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#if defined (TAO_HAS_EXCEPTIONS) - ACE_CATCHALL - { - // Eat these. We probably should log these, but since we have already - // unblocked the requesting thread there is no point in saving it or - // doing anything with it. - } -#endif - ACE_ENDTRY; -} - - -void -TAO::CSD::TP_Remote_Request::cancel_i() -{ - this->do_cancel(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.h deleted file mode 100644 index c80dec5c992..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.h +++ /dev/null @@ -1,99 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Remote_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_REMOTE_REQUEST_H -#define TAO_CSD_TP_REMOTE_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Corba_Request.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Remote_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Remote_Request> - TP_Remote_Request_Handle; - - /** - * @class TP_Remote_Request - * - * @brief Represents a "queue-able", remote, CORBA request. - * Both syncronous and asynchronous remote CORBA requests - * are represented by the class. - * - * TBD - Go over the following comments and clean up. - * - * Since this class derives from the TP_Request class, it can be - * added to a TP_Queue (ie, it is a "queueable" request). It - * represents a servant request that has been made by a remote - * CORBA client (as opposed to a collocated CORBA client). The - * term "CORBA client" is being used here to distinguish CORBA - * servant requests (those made thru a CORBA object reference), and - * "Custom" servant requests that can be "dispatched" to the strategy - * directly by the client application code (ie, not thru a CORBA - * object reference). Thus, there are "CORBA clients" and - * "Direct clients". - * - * In summary, this class represents a servant request made when a - * remote client invokes a method on a CORBA object reference. - * - */ - class TAO_CSD_TP_Export TP_Remote_Request : public TP_Corba_Request - { - public: - - /// Constructor. - TP_Remote_Request(TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state); - - /// Virtual Destructor. - virtual ~TP_Remote_Request(); - - - protected: - - /// Prepare this TP_Remote_Request object to be placed into the - /// request queue. This will cause the underlying TAO_ServerRequest - /// object to be cloned. - virtual void prepare_for_queue_i(); - - /// Dispatch the request to the servant. - virtual void dispatch_i(); - - /// Cancel the request. - virtual void cancel_i(); - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Remote_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_REMOTE_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.inl deleted file mode 100644 index baa56a9ea08..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Remote_Request.inl +++ /dev/null @@ -1,20 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Remote_Request::TP_Remote_Request - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant, - TP_Servant_State* servant_state) - : TP_Corba_Request(object_id, - poa, - operation, - servant, - servant_state, - server_request) -{ -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Request.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Request.cpp deleted file mode 100644 index a01d18f19dd..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Request.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// $Id$ - -#include "CSD_TP_Request.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Request, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Request.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Request::~TP_Request() -{ -} - - -void -TAO::CSD::TP_Request::prepare_for_queue_i() -{ - // Default implementation is to do nothing. Subclasses can provide - // their own implementation if needed. -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Request.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Request.h deleted file mode 100644 index 4e7c61e9b09..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Request.h +++ /dev/null @@ -1,133 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Request.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_REQUEST_H -#define TAO_CSD_TP_REQUEST_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Servant_State.h" -#include "tao/PortableServer/Servant_Base.h" -#include "tao/Intrusive_Ref_Count_Base_T.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - -namespace TAO -{ - namespace CSD - { - - class TP_Request; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Request> TP_Request_Handle; - - class TP_Queue; - - - /** - * @class TP_Request - * - * @brief Base class for "queue-able" requests. - * - * This class serves as the abstract base class for all types of - * "servant requests" that can be inserted into a TP_Queue - * object. - */ - class TAO_CSD_TP_Export TP_Request - : public TAO_Intrusive_Ref_Count_Base<ACE_SYNCH_MUTEX> - { - public: - - /// Virtual Destructor. - virtual ~TP_Request(); - - /// Prepare the request to be placed into the request queue. - void prepare_for_queue(); - - /// Invoked to dispatch the request to the servant. - void dispatch(); - - /// Invoked to cancel the request. - void cancel(); - - /// Is the target servant ready to accept a request? - bool is_ready() const; - - /// Mark the target servant as being busy. - void mark_as_busy(); - - /// Mark the target servant as being ready (ie, not busy). - void mark_as_ready(); - - /// This method returns true if this request targets the supplied - /// servant object. - bool is_target(PortableServer::Servant servant); - - - protected: - - /// Constructor. - TP_Request(PortableServer::Servant servant, - TP_Servant_State* servant_state); - - /// Accessor for the servant. Does not return a new (ref counted) - /// reference! This is used for chaining. - PortableServer::Servant servant(); - - /// The subclass knows if it needs to do anything in preparation - /// of being placed into the request queue. The default implementation - /// does nothing, so only subclasses that have something to do - /// need to provide their own implementation. - virtual void prepare_for_queue_i(); - - /// The subclass knows how to carry out its own way of dispatching - /// the request to the servant. - virtual void dispatch_i() = 0; - - /// Ask the subclass to perform its duties to carry out the cancellation. - virtual void cancel_i() = 0; - - - private: - - /// The TP_Queue class is our friend since it needs access to - /// the prev_ and next_ (private) data members. - friend class TP_Queue; - - /// The previous TP_Request object (in the queue). - TP_Request* prev_; - - /// The next TP_Request object (in the queue). - TP_Request* next_; - - /// Reference to the servant object. - PortableServer::ServantBase_var servant_; - - /// Reference to the servant "state" object (contains the busy flag). - TP_Servant_State::HandleType servant_state_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_REQUEST_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Request.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Request.inl deleted file mode 100644 index 7181678ecde..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Request.inl +++ /dev/null @@ -1,92 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Request::TP_Request(PortableServer::Servant servant, - TP_Servant_State* servant_state) - : prev_(0), - next_(0), - servant_ (servant), - servant_state_(servant_state, false) -{ - // This try-catch block is not really necessary for current implementation - // since the _add_ref does not throw exception, but we have to add it to - // satisfy the non-exception builds. If _add_ref really throws an exception - // then this constructor needs deal with the exception. - ACE_TRY_NEW_ENV - { - this->servant_->_add_ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - } - ACE_ENDTRY; -} - - -ACE_INLINE -void -TAO::CSD::TP_Request::prepare_for_queue() -{ - this->prepare_for_queue_i(); -} - - -ACE_INLINE -PortableServer::Servant -TAO::CSD::TP_Request::servant() -{ - // Used for chaining so we do not return a new "copy". - return this->servant_.in(); -} - - -ACE_INLINE -bool -TAO::CSD::TP_Request::is_ready() const -{ - return !this->servant_state_->busy_flag(); -} - - -ACE_INLINE -void -TAO::CSD::TP_Request::mark_as_busy() -{ - this->servant_state_->busy_flag(true); -} - - -ACE_INLINE -void -TAO::CSD::TP_Request::mark_as_ready() -{ - this->servant_state_->busy_flag(false); -} - - -ACE_INLINE -bool -TAO::CSD::TP_Request::is_target(PortableServer::Servant servant) -{ - // Compare pointers. Return true only if these are the exact same object. - return (servant == this->servant_.in()); -} - - -ACE_INLINE -void -TAO::CSD::TP_Request::dispatch() -{ - this->dispatch_i(); - -} - - -ACE_INLINE -void -TAO::CSD::TP_Request::cancel() -{ - this->cancel_i(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.cpp deleted file mode 100644 index bd7413d3fd2..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#include "CSD_TP_Servant_State.h" - -ACE_RCSID (CSD_TP, - Servant_State, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Servant_State.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Servant_State::~TP_Servant_State() -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.h deleted file mode 100644 index fca7d321f1d..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.h +++ /dev/null @@ -1,89 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Servant_State.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_SERVANT_STATE_H -#define TAO_CSD_TP_SERVANT_STATE_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Intrusive_Ref_Count_Base_T.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" -#include "ace/Synch.h" - - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Servant_State - * - * @brief Maintains state information for a particular servant. - * - * This TP_Servant_State class is an intrusively reference-counted - * class. This allows it to be held in a "smart pointer" (aka, handle) - * object that will manage the reference-counting automagically. - * - * One TP_Servant_State object is created for each servant object for - * which a request is to be dispatched. The servant state objects are - * held (via smart pointers) in a TP_Servant_State_Map object. In turn, - * the TP_Servant_State_Map object is a data member of the TP_Stategy - * class. Each request placed on to the request queue will hold a - * reference (via a smart pointer) to the servant state object. - * - * Currently, the only "state" info held in this TP_Servant_State class - * is the servant's busy flag. - * - */ - class TAO_CSD_TP_Export TP_Servant_State - : public TAO_Intrusive_Ref_Count_Base<ACE_SYNCH_MUTEX> - { - public: - - /// Handle Type (aka, Smart Pointer Type). - typedef TAO_Intrusive_Ref_Count_Handle<TP_Servant_State> HandleType; - - /// Default Constructor. - TP_Servant_State(); - - /// Virtual Destructor. - virtual ~TP_Servant_State(); - - /// Accessor for the servant busy flag. - bool busy_flag() const; - - /// Mutator for the servant busy flag. - void busy_flag(bool new_value); - - private: - - /// The servant's current "busy" state (true == busy, false == not busy) - bool busy_flag_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Servant_State.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_SERVANT_STATE_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.inl deleted file mode 100644 index ba67f809131..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State.inl +++ /dev/null @@ -1,24 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Servant_State::TP_Servant_State() - : busy_flag_(false) -{ -} - - -ACE_INLINE -bool -TAO::CSD::TP_Servant_State::busy_flag() const -{ - return this->busy_flag_; -} - - -ACE_INLINE -void -TAO::CSD::TP_Servant_State::busy_flag(bool new_value) -{ - this->busy_flag_ = new_value; -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.cpp deleted file mode 100644 index d6d34c6c6c2..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#include "CSD_TP_Servant_State_Map.h" - -ACE_RCSID (CSD_TP, - Servant_State_Map, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Servant_State_Map.inl" -#endif /* ! __ACE_INLINE__ */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.h deleted file mode 100644 index 667b836006c..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.h +++ /dev/null @@ -1,92 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Servant_State_Map.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_SERVANT_STATE_MAP_H -#define TAO_CSD_TP_SERVANT_STATE_MAP_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CSD_TP_Servant_State.h" -#include "tao/PortableServer/PortableServer.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Synch.h" - - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Servant_State_Map - * - * @brief Map of Servant_State objects - one per servant. - * - * A TP_Stategy object holds an instance of a TP_Servant_State_Map object - * as a (held-by-value) data member. The strategy uses this map to - * find or create the TP_Servant_State object for a particular servant - * object. - * - */ - class TAO_CSD_TP_Export TP_Servant_State_Map - { - public: - - /// Default Constructor. - TP_Servant_State_Map(); - - /// Destructor. - ~TP_Servant_State_Map(); - - /// Accessor for the servant busy flag. - TP_Servant_State* find(PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - /// Insert the servant to map. - void insert(PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - /// Remove the servant from map. - void remove(PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - - private: - - /// Underlying Map Type - Hash-Based - - /// Key Type: void*, Value Type: TP_Servant_State::HandleType - typedef ACE_Hash_Map_Manager_Ex<void*, - TP_Servant_State::HandleType, - ACE_Hash<void*>, - ACE_Equal_To<void*>, - ACE_SYNCH_MUTEX> MapType; - - /// The underlying map of servant state objects. - MapType map_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Servant_State_Map.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_SERVANT_STATE_MAP_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.inl deleted file mode 100644 index 0d0e40f54f3..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Servant_State_Map.inl +++ /dev/null @@ -1,66 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Servant_State_Map::TP_Servant_State_Map() -{ -} - - -ACE_INLINE -TAO::CSD::TP_Servant_State_Map::~TP_Servant_State_Map() -{ -} - - -ACE_INLINE -TAO::CSD::TP_Servant_State* -TAO::CSD::TP_Servant_State_Map::find(PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - void* key = servant; - - TP_Servant_State::HandleType value; - - if (this->map_.find(key, value) != 0) - { - ACE_THROW_RETURN (PortableServer::POA::ServantNotActive (), 0); - } - - return value._retn(); -} - - -ACE_INLINE -void -TAO::CSD::TP_Servant_State_Map::insert(PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - void* key = servant; - - TP_Servant_State::HandleType value = new TP_Servant_State (); - - int result = this->map_.bind(key, value); - - if (result == 1) - { - ACE_THROW (PortableServer::POA::ServantAlreadyActive ()); - } - - ACE_ASSERT (result == 0); -} - - -ACE_INLINE -void -TAO::CSD::TP_Servant_State_Map::remove(PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - void* key = servant; - - if (this->map_.unbind(key) == -1) - { - ACE_THROW (PortableServer::POA::ServantNotActive ()); - } -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.cpp deleted file mode 100644 index 6968234d673..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.cpp +++ /dev/null @@ -1,270 +0,0 @@ -// $Id$ - -#include "CSD_TP_Strategy.h" -#include "CSD_TP_Remote_Request.h" -#include "CSD_TP_Collocated_Synch_Request.h" -#include "CSD_TP_Collocated_Asynch_Request.h" -#include "CSD_TP_Custom_Synch_Request.h" -#include "CSD_TP_Custom_Asynch_Request.h" -#include "CSD_TP_Collocated_Synch_With_Server_Request.h" -#include "ace/Trace.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Strategy, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Strategy.inl" -#endif /* ! __ACE_INLINE__ */ - - -TAO::CSD::TP_Strategy::~TP_Strategy() -{ -} - - - -TAO::CSD::TP_Strategy::CustomRequestOutcome -TAO::CSD::TP_Strategy::custom_synch_request(TP_Custom_Request_Operation* op - ACE_ENV_ARG_DECL) -{ - TP_Servant_State::HandleType servant_state - = this->servant_state_map_.find(op->servant() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (REQUEST_REJECTED); - - TP_Custom_Synch_Request_Handle request = new - TP_Custom_Synch_Request(op, servant_state.in()); - - if (!this->task_.add_request(request.in())) - { - // The request was rejected by the task. - return REQUEST_REJECTED; - } - - // Now we wait until the request is handled (executed or cancelled). - return (request->wait()) ? REQUEST_EXECUTED : REQUEST_CANCELLED; -} - - -TAO::CSD::TP_Strategy::CustomRequestOutcome -TAO::CSD::TP_Strategy::custom_asynch_request(TP_Custom_Request_Operation* op - ACE_ENV_ARG_DECL) -{ - TP_Servant_State::HandleType servant_state - = this->servant_state_map_.find(op->servant() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (REQUEST_REJECTED); - - TP_Custom_Asynch_Request_Handle request = new - TP_Custom_Asynch_Request(op, servant_state.in()); - - return (this->task_.add_request(request.in())) - ? REQUEST_DISPATCHED : REQUEST_REJECTED; -} - - -bool -TAO::CSD::TP_Strategy::poa_activated_event_i() -{ - // Activates the worker threads, and waits until all have been started. - return (this->task_.open(&(this->num_threads_)) == 0); -} - - -void -TAO::CSD::TP_Strategy::poa_deactivated_event_i() -{ - // Passing in a value of 1 means that we want to shutdown the task, which - // equates to causing all worker threads to shutdown. The worker threads - // themselves will also invoke the close() method, but the passed-in value - // will be 0. So, a 1 means "shutdown", and a 0 means "a single worker - // thread is going away". - this->task_.close(1); -} - - -TAO::CSD::Strategy_Base::DispatchResult -TAO::CSD::TP_Strategy::dispatch_remote_request_i - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - // Obtain the TP_Servant_State object associated with the servant object. - // The find() either return a non nil handle or already thrown - // ServantNotActive exception. - - TP_Servant_State::HandleType servant_state - = this->servant_state_map_.find(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (DISPATCH_REJECTED); - - // Now we can create the TP_Remote_Request object, and then add it to our - // task_'s "request queue". - // - // TBD-CSD: Need to use a Cached Allocator to "create" the - // TP_Remote_Request objects. For now, use the heap. - TP_Remote_Request_Handle request = - new TP_Remote_Request(server_request, - object_id, - poa, - operation, - servant, - servant_state.in()); - - // Hand the request object to our task so that it can add the request - // to its "request queue". - if (!this->task_.add_request(request.in())) - { - // Return the DISPATCH_REJECTED return code so that the caller (our - // base class' dispatch_request() method) knows that we did - // not handle the request, and that it should be rejected. - return TAO::CSD::Strategy_Base::DISPATCH_REJECTED; - } - - return TAO::CSD::Strategy_Base::DISPATCH_HANDLED; -} - - -TAO::CSD::Strategy_Base::DispatchResult -TAO::CSD::TP_Strategy::dispatch_collocated_request_i - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - // Obtain the TP_Servant_State object associated with the servant object. - // The find() either return a non nil handle or already thrown - // ServantNotActive exception. - - TP_Servant_State::HandleType servant_state - = this->servant_state_map_.find(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (DISPATCH_REJECTED); - - bool is_sync_with_server = server_request.sync_with_server(); - bool is_synchronous = server_request.response_expected(); - - TP_Collocated_Synch_Request_Handle synch_request; - TP_Collocated_Synch_With_Server_Request_Handle synch_with_server_request; - TP_Request_Handle request; - - // Create the request object using the appropriate concrete type. - if (is_sync_with_server) - { - synch_with_server_request = - new TP_Collocated_Synch_With_Server_Request - (server_request, - object_id, - poa, - operation, - servant, - servant_state.in()); - - // Give the request handle its own "copy". - synch_with_server_request->_add_ref(); - request = synch_with_server_request.in(); - } - else if (is_synchronous) - { - synch_request = new TP_Collocated_Synch_Request(server_request, - object_id, - poa, - operation, - servant, - servant_state.in()); - - // Give the request handle its own "copy". - synch_request->_add_ref(); - request = synch_request.in(); - } - else - { - // Just use the (base) request handle to hold the request object. - request = new TP_Collocated_Asynch_Request(server_request, - object_id, - poa, - operation, - servant, - servant_state.in()); - } - - // Hand the request object to our task so that it can add the request - // to its "request queue". - if (!this->task_.add_request(request.in())) - { - // Return the DISPATCH_REJECTED return code so that the caller (our - // base class' dispatch_request() method) knows that we did - // not handle the request, and that it should be rejected. - return DISPATCH_REJECTED; - } - - // We need to wait on the request object if the request type is a - // synchronous request. - if (!synch_request.is_nil()) - { - int srw = synch_request->wait(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (DISPATCH_REJECTED); - if (srw == false) - { - // Raise exception when request was cancelled. - ACE_THROW_RETURN(CORBA::NO_IMPLEMENT(), DISPATCH_REJECTED); - } - } - else if (!synch_with_server_request.is_nil()) - { - bool swsr = synch_with_server_request->wait(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (DISPATCH_REJECTED); - if (swsr == false) - { - // Raise exception when request was cancelled. - ACE_THROW_RETURN(CORBA::NO_IMPLEMENT(), DISPATCH_REJECTED); - } - } - - return DISPATCH_HANDLED; -} - - -void -TAO::CSD::TP_Strategy::servant_activated_event_i - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - ACE_UNUSED_ARG(oid); - - // Add the servant to the servant state map. - this->servant_state_map_.insert(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -TAO::CSD::TP_Strategy::servant_deactivated_event_i - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - ACE_UNUSED_ARG(oid); - - // Cancel all requests stuck in the queue for the specified servant. - this->task_.cancel_servant(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Remove the servant from the servant state map. - this->servant_state_map_.remove(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -TAO::CSD::TP_Strategy::cancel_requests(PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - // Cancel all requests stuck in the queue for the specified servant. - this->task_.cancel_servant(servant ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.h deleted file mode 100644 index ff96daa2788..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.h +++ /dev/null @@ -1,180 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Strategy.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_STRATEGY_H -#define TAO_CSD_TP_STRATEGY_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#include "CSD_TP_Task.h" -#include "CSD_TP_Servant_State_Map.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/CSD_Framework/CSD_Strategy_Base.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" - - - -namespace TAO -{ - namespace CSD - { - - class TP_Strategy; - typedef TAO_Intrusive_Ref_Count_Handle<TP_Strategy> TP_Strategy_Handle; - - class TP_Custom_Request_Operation; - - /** - * @class TP_Strategy - * - * @brief A simple custom Thread-Pool servant dispatching strategy class. - * - * This class represents a concrete implementation of a "Custom - * Servant Dispatching Strategy". This implementation is being called - * the "Thread Pool Strategy" reference implementation. - * - * A custom servant dispatching strategy object can be applied to a - * POA object in order to carry out the servant dispatching duties - * for that POA. - * - */ - class TAO_CSD_TP_Export TP_Strategy - : public Strategy_Base - { - public: - - /// Constructor. - TP_Strategy(unsigned num_threads = 1); - - /// Virtual Destructor. - virtual ~TP_Strategy(); - - /// Set the number of threads in the pool (must be > 0). - void set_num_threads(unsigned num_threads); - - /// Return codes for the custom dispatch_request() methods. - enum CustomRequestOutcome - { - /// The request was successfully put on the request queue. - REQUEST_DISPATCHED, - /// The request has been executed/completed by a worker thread. - REQUEST_EXECUTED, - /// The request was removed from the queue and cancelled. - REQUEST_CANCELLED, - /// The request queue rejected the request - REQUEST_REJECTED - }; - - /// Inject a synchronous, custom request into the request queue. - /// This will block the calling thread until the request is handled - /// (dispatched or cancelled) or rejected. - /// Will return REQUEST_EXECUTED, REQUEST_CANCELLED, or REQUEST_REJECTED. - CustomRequestOutcome custom_synch_request - (TP_Custom_Request_Operation* op - ACE_ENV_ARG_DECL); - - /// Inject an asynchronous, custom request into the request queue. - /// This will return control to the calling thread once the request - /// has been placed into the queue (or rejected). - /// Will return REQUEST_DISPATCHED or REQUEST_REJECTED. - CustomRequestOutcome custom_asynch_request - (TP_Custom_Request_Operation* op - ACE_ENV_ARG_DECL); - - /// Cancel all requests that are targeted for the provided servant. - /// This is requested on the user application level. - void cancel_requests(PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - protected: - - /// Handle the dispatching of a remote request. - /// - /// This will cause a new "request" object to be created and pushed - /// on to a "request queue". The worker threads are responsible for - /// servicing the queue, and performing the actual dispatch logic. - virtual Strategy_Base::DispatchResult dispatch_remote_request_i - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - /// Handle the dispatching of a collocated request. - /// - /// This will cause a new "request" object to be created and pushed - /// on to a "request queue". The worker threads are responsible for - /// servicing the queue, and performing the actual dispatch logic. - virtual Strategy_Base::DispatchResult dispatch_collocated_request_i - (TAO_ServerRequest& server_request, - const PortableServer::ObjectId& object_id, - PortableServer::POA_ptr poa, - const char* operation, - PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - /// Event - The POA has been activated. - /// This will activate the worker thread(s). - /// Returns true if the worker threads were activated successfully. - /// Otherwise, returns false. - virtual bool poa_activated_event_i(); - - /// Event - The POA has been deactivated. - /// This will shutdown the worker thread(s). - virtual void poa_deactivated_event_i(); - - /// Event - A servant has been activated - virtual void servant_activated_event_i - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// Event - A servant has been deactivated - virtual void servant_deactivated_event_i - (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - - private: - - /// This is the active object used by the worker threads. - /// The request queue is owned/managed by the task object. - /// The strategy object puts requests into the task's request - /// queue, and the worker threads service the queued requests - /// by performing the actual servant request dispatching logic. - TP_Task task_; - - /// The number of worker threads to use for the task. - unsigned num_threads_; - - /// The map of servant state objects. - TP_Servant_State_Map servant_state_map_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Strategy.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_STRATEGY_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.inl deleted file mode 100644 index ac2f95e3586..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy.inl +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -ACE_INLINE -TAO::CSD::TP_Strategy::TP_Strategy(unsigned num_threads) - : num_threads_(num_threads) -{ - // Assumes that num_threads > 0. -} - - -ACE_INLINE -void -TAO::CSD::TP_Strategy::set_num_threads(unsigned num_threads) -{ - // Simple Mutator. Assumes that num_threads > 0. - this->num_threads_ = num_threads; -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp deleted file mode 100644 index 0ec186f2f6d..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -#include "CSD_TP_Strategy_Factory.h" -#include "CSD_TP_Strategy.h" -#include "CSD_ThreadPool.h" -#include "tao/CSD_Framework/CSD_Strategy_Repository.h" -#include "tao/debug.h" -#include "ace/Dynamic_Service.h" -#include "ace/OS_NS_strings.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Strategy_Factory, - "$Id$") - - -TAO::CSD::TP_Strategy_Factory::TP_Strategy_Factory() -{ -} - - -TAO::CSD::TP_Strategy_Factory::~TP_Strategy_Factory() -{ -} - - -int -TAO::CSD::TP_Strategy_Factory::init (int argc, - ACE_TCHAR* argv[]) -{ - ACE_TRACE ("TAO::CSD::TP_Strategy_Factory::init"); - - static int initialized = 0; - - // Only allow initialization once. - if (initialized) - return 0; - - initialized = 1; - TAO_CSD_Strategy_Repository *repo = - ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ("TAO_CSD_Strategy_Repository"); - - if (repo != 0) - repo->init(0,0); - - ACE_CString poa_name; - unsigned num_threads = 1; - - // Parse any service configurator parameters. - for (int curarg = 0; curarg < argc; curarg++) - if (ACE_OS::strcasecmp (argv[curarg], - ACE_TEXT("-CSDtp")) == 0) - { - curarg++; - if (curarg < argc) - { - // Parse the parameter - ACE_CString arg ((const char *)argv[curarg]); - ssize_t pos = arg.find (':'); - poa_name = arg.substr (0, pos); - ACE_CString num_thread_str = arg.substr (pos + 1, arg.length () - pos); - num_threads = ACE_OS::strtoul (num_thread_str.c_str (), 0, 10); - - // Create the ThreadPool strategy for each named poa. - TP_Strategy* strategy = 0; - ACE_NEW_RETURN (strategy, TP_Strategy (num_threads), -1); - CSD_Framework::Strategy_var objref = strategy; - - TAO_CSD_Strategy_Repository *repo = - ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance - ("TAO_CSD_Strategy_Repository"); - - if (repo == 0) - { - TAO_CSD_ThreadPool::init (); - repo = ACE_Dynamic_Service<TAO_CSD_Strategy_Repository>::instance ( - "TAO_CSD_Strategy_Repository" - ); - } - - - repo->add_strategy (poa_name, strategy); - } - } - else - { - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_ERROR, - ACE_TEXT("CSD_ORB_Loader: Unknown option ") - ACE_TEXT("<%s>.\n"), - argv[curarg])); - } - } - - - return 0; -} - -ACE_FACTORY_NAMESPACE_DEFINE(TAO_CSD_TP, - TAO_CSD_TP_Strategy_Factory, - TAO::CSD::TP_Strategy_Factory) - -ACE_STATIC_SVC_DEFINE(TAO_CSD_TP_Strategy_Factory, - ACE_TEXT("TAO_CSD_TP_Strategy_Factory"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME(TAO_CSD_TP_Strategy_Factory), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h deleted file mode 100644 index e51346befbf..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h +++ /dev/null @@ -1,61 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Strategy_Factory.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_STRATEGY_FACTORY_H -#define TAO_CSD_TP_STRATEGY_FACTORY_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" - - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Strategy_Factory - * - * @brief An ACE_Service_Object capable of creating TP_Strategy objects. - * - * TBD - Explain in more detail. - * - */ - class TAO_CSD_TP_Export TP_Strategy_Factory : public ACE_Service_Object - { - public: - - /// Constructor. - TP_Strategy_Factory(); - - /// Virtual Destructor. - virtual ~TP_Strategy_Factory(); - - int init (int argc, ACE_TCHAR* argv[]); - }; - } -} - -ACE_STATIC_SVC_DECLARE_EXPORT(TAO_CSD_TP, TAO_CSD_TP_Strategy_Factory) -ACE_FACTORY_DECLARE(TAO_CSD_TP, TAO_CSD_TP_Strategy_Factory) - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_STRATEGY_FACTORY_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.cpp deleted file mode 100644 index b3b241ec8f8..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#include "CSD_TP_Synch_Helper.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Synch_Helper, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Synch_Helper.inl" -#endif /* ! __ACE_INLINE__ */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.h deleted file mode 100644 index 80c8aaff2ec..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.h +++ /dev/null @@ -1,107 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Synch_Helper.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_SYNCH_HELPER_H -#define TAO_CSD_TP_SYNCH_HELPER_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" -#include "tao/Condition.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Synch.h" - - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Synch_Helper - * - * @brief Helper class for synchronous requests to block the requesting - * thread until the appropriate time (when it will be un-blocked). - * - * TBD - Description here - * - */ - class TAO_CSD_TP_Export TP_Synch_Helper - { - public: - - /// Constructor. Sets initial state to PENDING. - TP_Synch_Helper(); - - /// Destructor. - ~TP_Synch_Helper(); - - /// Returns true if the helper state is DISPATCHED, and false if - /// the helper state is CANCELLED. However, if the helper state - /// is PENDING, then this method will block the calling thread - /// until the state changes to something other than PENDING - /// (ie, DISPATCHED or CANCELLED). - bool wait_while_pending(); - - /// Change the state of this helper to DISPATCHED, which will cause - /// wait_while_pending() to unblock. - void dispatched(); - - /// Change the state of this helper to CANCELLED, which will cause - /// wait_while_pending() to unblock. - void cancelled(); - - - private: - - /// Enumeration Type for all possible states of this helper object. - enum HelperState - { - PENDING, - DISPATCHED, - CANCELLED - }; - - /// Thread lock type - typedef ACE_SYNCH_MUTEX LockType; - - /// Thread guard type - typedef ACE_Guard<LockType> GuardType; - - /// Thread condition type - typedef TAO_Condition<LockType> ConditionType; - - /// Lock used to protect the state and condition. - LockType lock_; - - /// Used to denote the state of the request dispatching. - HelperState state_; - - /// The condition used to block the calling thread until the - /// state is something other than the PENDING state. - ConditionType condition_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Synch_Helper.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_SYNCH_HELPER_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.inl deleted file mode 100644 index 8a54320afb4..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Synch_Helper.inl +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ - - -ACE_INLINE -TAO::CSD::TP_Synch_Helper::TP_Synch_Helper() - : state_(PENDING), - condition_(this->lock_) -{ -} - - -ACE_INLINE -TAO::CSD::TP_Synch_Helper::~TP_Synch_Helper() -{ -} - - -ACE_INLINE -bool -TAO::CSD::TP_Synch_Helper::wait_while_pending() -{ - GuardType guard(this->lock_); - - while (this->state_ == PENDING) - { - this->condition_.wait(); - } - - return (this->state_ == DISPATCHED); -} - - -ACE_INLINE -void -TAO::CSD::TP_Synch_Helper::dispatched() -{ - GuardType guard(this->lock_); - this->state_ = DISPATCHED; - this->condition_.signal(); -} - - -ACE_INLINE -void -TAO::CSD::TP_Synch_Helper::cancelled() -{ - GuardType guard(this->lock_); - this->state_ = CANCELLED; - this->condition_.signal(); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Task.cpp b/TAO/tao/CSD_ThreadPool/CSD_TP_Task.cpp deleted file mode 100644 index 4a3874a4b82..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Task.cpp +++ /dev/null @@ -1,310 +0,0 @@ -// $Id$ - -#include "CSD_TP_Task.h" -#include "CSD_TP_Request.h" -#include "CSD_TP_Dispatchable_Visitor.h" -#include "CSD_TP_Cancel_Visitor.h" - -ACE_RCSID (CSD_ThreadPool, - TP_Task, - "$Id$") - -#if !defined (__ACE_INLINE__) -# include "CSD_TP_Task.inl" -#endif /* ! __ACE_INLINE__ */ - -TAO::CSD::TP_Task::~TP_Task() -{ -} - - -bool -TAO::CSD::TP_Task::add_request(TP_Request* request) -{ - GuardType guard(this->lock_); - - if (!this->accepting_requests_) - { - ACE_DEBUG((LM_DEBUG,"(%P|%t) TP_Task::add_request() - " - "not accepting requests\n")); - return false; - } - - // We have made the decision that the request is going to be placed upon - // the queue_. Inform the request that it is about to be placed into - // a request queue. Some requests may not need to do anything in - // preparation of being placed into a queue. Others, however, may need - // to perfom a "clone" operation on some underlying request data before - // the request can be properly placed into a queue. - request->prepare_for_queue(); - - this->queue_.put(request); - - this->work_available_.signal(); - - return true; -} - - -int -TAO::CSD::TP_Task::open(void* num_threads_ptr) -{ - unsigned num = 1; - - if (num_threads_ptr != 0) - { - unsigned* tmp = ACE_static_cast(unsigned*, num_threads_ptr); - - if (tmp == 0) - { - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) TP_Task failed to open. " - "Invalid argument type passed to open().\n"), - -1); - } - - num = *tmp; - } - - // We can't activate 0 threads. Make sure this isn't the case. - if (num < 1) - { - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) TP_Task failed to open. " - "num_threads_ (%u) is less-than 1.\n", - num), - -1); - } - - // Likewise, we can't activate too many. Make sure this isn't the case. - if (num > MAX_THREADPOOL_TASK_WORKER_THREADS) - { - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) TP_Task failed to open. " - "num_threads_ (%u) is too large. Max is %d.\n", - num, MAX_THREADPOOL_TASK_WORKER_THREADS), - -1); - } - - // We need the lock acquired from here on out. - GuardType guard(this->lock_); - - // We can assume that we are in the proper state to handle this open() - // call as long as we haven't been open()'ed before. - if (this->opened_) - { - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) TP_Task failed to open. " - "Task has previously been open()'ed.\n"), - -1); - } - - // Activate this task object with 'num' worker threads. - if (this->activate(THR_NEW_LWP | THR_JOINABLE, num) != 0) - { - // Assumes that when activate returns non-zero return code that - // no threads were activated. - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) TP_Task failed to activate " - "(%d) worker threads.\n", - num), - -1); - } - - // Now we have past the point where we can say we've been open()'ed before. - this->opened_ = true; - - // Now we wait until all of the threads have started. - while (this->num_threads_ != num) - { - this->active_workers_.wait(); - } - - // We can now accept requests (via our add_request() method). - this->accepting_requests_ = true; - - return 0; -} - - -int -TAO::CSD::TP_Task::svc() -{ - // Account for this current worker thread having started the - // execution of this svc() method. - { - GuardType guard(this->lock_); - // Put the thread id into a collection which is used to check whether - // the orb shutdown is called by one of the threads in the pool. - ACE_thread_t thr_id = ACE_OS::thr_self (); - if (this->activated_threads_.set(thr_id, this->num_threads_) == -1) - { - ACE_ERROR_RETURN((LM_ERROR, - ACE_TEXT("(%P|%t)TP_Task::svc: number of threads is out of range \n")), - 0); - } - ++this->num_threads_; - this->active_workers_.signal(); - } - - // This visitor object will be re-used over and over again as part of - // the "GetWork" logic below. - TP_Dispatchable_Visitor dispatchable_visitor; - - // Start the "GetWork-And-PerformWork" loop for the current worker thread. - while (1) - { - TP_Request_Handle request; - - // Do the "GetWork" step. - { - // Acquire the lock until just before we decide to "PerformWork". - GuardType guard(this->lock_); - - // Start the "GetWork" loop. - while (request.is_nil()) - { - if (this->shutdown_initiated_) - { - // This breaks us out of all loops with one fell swoop. - return 0; - } - - // There is no need to visit the queue if it is empty. - if (!this->queue_.is_empty()) - { - // Reset the visitor since we use it over and over. This - // will cause the visitor to drop any reference to - // a request that it may still be holding from a prior - // call to accept_visitor(). - dispatchable_visitor.reset(); - - // Visit the requests in the queue in hopes of - // locating the first "dispatchable" (ie, not busy) request. - // If a dispatchable request is located, it is extracted - // from the queue and saved in a handle data member in the - // visitor object. - this->queue_.accept_visitor(dispatchable_visitor); - - // If a dispatchable request is located, it is extracted - // from the queue and saved in a handle data member in the - // visitor object. Let's get a "copy" (or a NULL pointer - // if the visitor didn't locate/extract one). - request = dispatchable_visitor.request(); - } - - // Either the queue is empty or we couldn't find any dispatchable - // requests in the queue at this time. - if (request.is_nil()) - { - // Let's wait until we hear about the possibility of - // work before we go look again. - this->work_available_.wait(); - } - } - - // We have dropped out of the "while (request.is_nil())" loop. - // We only get here is we located/extracted a dispatchable request - // from the queue. Note that the visitor will have already - // marked the target servant as now being busy (because of us). - // We can now safely release the lock. - } - - // Do the "PerformWork" step. We don't need the lock_ to do this. - request->dispatch(); - - // Now that the request has been dispatched, we need to mark the target - // servant as no longer being busy, and we need to signal any wait()'ing - // worker threads that there may be some dispatchable requests in the - // queue now for this not-busy servant. We need the lock_ to do this. - { - GuardType guard(this->lock_); - request->mark_as_ready(); - this->work_available_.signal(); - } - - // Note that the request will be "released" here when the request - // handle falls out of scope and its destructor performs the - // _remove_ref() call on the underlying TP_Request object. - } - - // This will never get executed. - return 0; -} - - -int -TAO::CSD::TP_Task::close(u_long flag) -{ - GuardType guard(this->lock_); - - if (flag == 0) - { - // Worker thread is closing. - --this->num_threads_; - this->active_workers_.signal(); - } - else - { - // Strategy object is shutting down the task. - - // Do nothing if this task has never been open()'ed. - if (!this->opened_) - { - return 0; - } - - // Set the shutdown flag to true. - this->shutdown_initiated_ = true; - - // Stop accepting requests. - this->accepting_requests_ = false; - - // Signal all worker threads waiting on the work_available_ condition. - this->work_available_.broadcast(); - - size_t num_waiting_threads = 0; - - ACE_thread_t my_thr_id = ACE_OS::thr_self (); - - // Check whether the calling thread(calling orb shutdown) is one of the - // threads in the pool. If it is then it should not wait itself. - size_t size = this->activated_threads_.size (); - - for (size_t i = 0; i < size; i ++) - { - ACE_thread_t thr_id = 0; - if (activated_threads_.get (thr_id, i) == 0 && thr_id == my_thr_id) - { - num_waiting_threads = 1; - break; - } - } - - // Wait until all worker threads have shutdown. - while (this->num_threads_ != num_waiting_threads) - { - this->active_workers_.wait(); - } - - // Cancel all requests. - TP_Cancel_Visitor cancel_visitor; - this->queue_.accept_visitor(cancel_visitor); - } - - return 0; -} - - - -void -TAO::CSD::TP_Task::cancel_servant (PortableServer::Servant servant - ACE_ENV_ARG_DECL) -{ - GuardType guard(this->lock_); - - // Cancel the requests targeted for the provided servant. - TP_Cancel_Visitor cancel_visitor(servant); - this->queue_.accept_visitor(cancel_visitor); -} - diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Task.h b/TAO/tao/CSD_ThreadPool/CSD_TP_Task.h deleted file mode 100644 index 25fa02f2fda..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Task.h +++ /dev/null @@ -1,158 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_TP_Task.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_TP_TASK_H -#define TAO_CSD_TP_TASK_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" - -#include "CSD_TP_Queue.h" -#include "tao/PortableServer/PortableServer.h" -#include "tao/Condition.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Task.h" -#include "ace/Synch.h" -#include "ace/Containers_T.h" - -namespace TAO -{ - namespace CSD - { - - /** - * @class TP_Task - * - * @brief Active Object managing a queue of request objects. - * - * There are two types of "users" of a TP_Task object: - * - * 1) The TP_Strategy object that "owns" this task object. - * 2) The worker threads that "run" this task object as an - * "active object". - * - * The TP_Strategy object that "owns" this task object dictates - * when the worker threads are activated and when they are shutdown. It - * also injects requests into this task's queue via calls to the - * add_request() method. It is also the TP_Strategy object that - * dictates the number of worker threads to be activated via a call to - * the set_num_threads() method. - * - * The active object pattern is implemented via the use of the - * the ACE_Task_Base base class, and each worker thread will - * invoke this task's svc() method, and when the svc() returns, the - * worker thread will invoke this task's close() method (with the - * flag argument equal to 0). - * - * @note I just wanted to document an idea... When the pool consists - * of only one worker thread, we could care less about checking - * if target servant objects are busy or not. The simple fact - * that only one thread will be dispatching all requests means - * that servant objects will never be busy when the thread - * tests to see if a request is "ready_for_dispatch()". I'm - * just wondering if this knowledge can be applied to the - * implementation such that the "pool with one worker thread" case - * performs more efficiently. This is STP vs SSTP. - * - */ - class TAO_CSD_TP_Export TP_Task : public ACE_Task_Base - { - public: - - /// Default Constructor. - TP_Task(); - - /// Virtual Destructor. - virtual ~TP_Task(); - - /// Put a request object on to the request queue. - /// Returns true if successful, false otherwise (it has been "rejected"). - bool add_request(TP_Request* request); - - /// Activate the worker threads - virtual int open(void* num_threads_ptr = 0); - - /// The "mainline" executed by each worker thread. - virtual int svc(); - - /// Multi-purpose: argument value is used to differentiate purpose. - /// - /// 0) Invoked by each worker thread after its invocation of the - /// svc() method has completed (ie, returned). - /// 1) Invoked by the strategy object to shutdown all worker threads. - virtual int close(u_long flag = 0); - - /// Cancel all requests that are targeted for the provided servant. - void cancel_servant (PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - - private: - - typedef TAO_SYNCH_MUTEX LockType; - typedef ACE_Guard<LockType> GuardType; - typedef TAO_Condition<LockType> ConditionType; - - - /// Lock to protect the "state" (all of the data members) of this object. - LockType lock_; - - /// Condition used to signal worker threads that they may be able to - /// find a request in the queue_ that needs to be dispatched to a - /// servant that is currently "not busy". - /// This condition will be signal()'ed each time a new request is - /// added to the queue_, and also when a servant has become "not busy". - ConditionType work_available_; - - /// This condition will be signal()'ed each time the num_threads_ - /// data member has its value changed. This is used to keep the - /// close(1) invocation (ie, a shutdown request) blocked until all - /// of the worker threads have stopped running. - ConditionType active_workers_; - - /// Flag used to indicate when this task will (or will not) accept - /// requests via the the add_request() method. - bool accepting_requests_; - - /// Flag used to initiate a shutdown request to all worker threads. - bool shutdown_initiated_; - - /// Flag used to avoid multiple open() calls. - bool opened_; - - /// The number of currently active worker threads. - unsigned num_threads_; - - /// The queue of pending servant requests (a.k.a. the "request queue"). - TP_Queue queue_; - - typedef ACE_Array <ACE_thread_t> Thread_Ids; - - /// The list of ids for the threads launched by this task. - Thread_Ids activated_threads_; - }; - - } -} - -#if defined (__ACE_INLINE__) -# include "CSD_TP_Task.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_TP_TASK_H */ diff --git a/TAO/tao/CSD_ThreadPool/CSD_TP_Task.inl b/TAO/tao/CSD_ThreadPool/CSD_TP_Task.inl deleted file mode 100644 index 5d9744d2afb..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_TP_Task.inl +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -namespace { enum { MAX_THREADPOOL_TASK_WORKER_THREADS = 50 }; } -namespace { const ACE_thread_t default_thread_id = 0; } - - -ACE_INLINE -TAO::CSD::TP_Task::TP_Task() - : work_available_(this->lock_), - active_workers_(this->lock_), - accepting_requests_(false), - shutdown_initiated_(false), - opened_(false), - num_threads_(0), - activated_threads_ ((size_t)MAX_THREADPOOL_TASK_WORKER_THREADS, default_thread_id) -{ -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_ThreadPool.cpp b/TAO/tao/CSD_ThreadPool/CSD_ThreadPool.cpp deleted file mode 100644 index 6797bd315e9..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_ThreadPool.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -#include "CSD_ThreadPool.h" -#include "CSD_TP_Strategy_Factory.h" -#include "tao/CSD_Framework/CSD_Framework_Loader.h" -#include "tao/debug.h" -#include "ace/Dynamic_Service.h" - -int -TAO_CSD_ThreadPool::init (void) -{ - static int initialized = 0; - if (initialized == 1) - return 0; - initialized = 1; - - TAO_CSD_Framework_Loader::init(); - return ACE_Service_Config::process_directive (ace_svc_desc_TAO_CSD_TP_Strategy_Factory); -} diff --git a/TAO/tao/CSD_ThreadPool/CSD_ThreadPool.h b/TAO/tao/CSD_ThreadPool/CSD_ThreadPool.h deleted file mode 100644 index e227bce3023..00000000000 --- a/TAO/tao/CSD_ThreadPool/CSD_ThreadPool.h +++ /dev/null @@ -1,60 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file CSD_Threadpool.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_CSD_THREADPOOL_H -#define TAO_CSD_THREADPOOL_H - -#include /**/ "ace/pre.h" - -#include "CSD_TP_Export.h" -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" - - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TP_Strategy_Factory - * - * @brief An ACE_Service_Object capable of creating TP_Strategy objects. - * - * TBD - Explain in more detail. - * - */ -class TAO_CSD_TP_Export TAO_CSD_ThreadPool -{ - public: - /// Used to force the initialization of the ORB code. - static int init (void); -}; - -#if defined(ACE_HAS_BROKEN_STATIC_CONSTRUCTORS) - -typedef int (*TAO_CSD_Threadpool) (void); - -static TAO_CSD_Threadpool -TAO_Requires_CSD_Threadpool = - &TAO_CSD_ThreadPool::init; - -#else - -static int -TAO_Requires_CSD_Threadpool = - TAO_CSD_ThreadPool::init (); - -#endif /* ACE_HAS_BROKEN_STATIC_CONSTRUCTORS */ - -#include /**/ "ace/post.h" - -#endif /* TAO_CSD_THREADPOOL_H */ diff --git a/TAO/tao/Intrusive_Ref_Count_Base_T.cpp b/TAO/tao/Intrusive_Ref_Count_Base_T.cpp deleted file mode 100644 index e7776d3fd91..00000000000 --- a/TAO/tao/Intrusive_Ref_Count_Base_T.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// $Id$ - -#ifndef TAO_INTRUSIVE_REF_COUNT_BASE_T_C -#define TAO_INTRUSIVE_REF_COUNT_BASE_T_C - -#include "Intrusive_Ref_Count_Base_T.h" - -#if !defined (__ACE_INLINE__) -#include "tao/Intrusive_Ref_Count_Base_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID (tao, - Intrusive_Ref_Count_Base_T, - "$Id$") - -template <typename T> -TAO_Intrusive_Ref_Count_Base<T>::~TAO_Intrusive_Ref_Count_Base() -{ -} - -#endif /* TAO_INTRUSIVE_REF_COUNT_BASE_T_C */ diff --git a/TAO/tao/Intrusive_Ref_Count_Base_T.h b/TAO/tao/Intrusive_Ref_Count_Base_T.h deleted file mode 100644 index f37041bd02c..00000000000 --- a/TAO/tao/Intrusive_Ref_Count_Base_T.h +++ /dev/null @@ -1,75 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file Intrusive_Ref_Count_Base_T.h - * - * $Id$ - * - * @authors Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_INTRUSIVE_REF_COUNT_BASE_T_H -#define TAO_INTRUSIVE_REF_COUNT_BASE_T_H - -#include /**/ "ace/pre.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Atomic_Op.h" - - -/** - * @class TAO_Intrusive_Ref_Count_Base<ACE_LOCK> - * - * @brief Template base class to provide intrusive reference-counting - * to subclasses. This makes the subclass capable of using a - * TAO_Intrusive_Ref_Count_Handle<X> class as a smart-pointer - * to an X object. In this case, X is a sub-class of this class, - * TAO_Intrusive_Ref_Count_Base<ACE_LOCK>. The ACE_LOCK type is - * used to protect the atomic reference count data member. - * - */ -template <class ACE_LOCK> -class TAO_Intrusive_Ref_Count_Base -{ -public: - - virtual ~TAO_Intrusive_Ref_Count_Base(); - - void _add_ref(); - void _remove_ref(); - - -protected: - - TAO_Intrusive_Ref_Count_Base(); - - -private: - - ACE_Atomic_Op<ACE_LOCK, long> ref_count_; - - // Not implemented. - TAO_Intrusive_Ref_Count_Base(const TAO_Intrusive_Ref_Count_Base&); - TAO_Intrusive_Ref_Count_Base& operator=(const TAO_Intrusive_Ref_Count_Base&); -}; - -#if defined (__ACE_INLINE__) -#include "Intrusive_Ref_Count_Base_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Intrusive_Ref_Count_Base_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Intrusive_Ref_Count_Base_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* TAO_INTRUSIVE_REF_COUNT_BASE_T_H */ diff --git a/TAO/tao/Intrusive_Ref_Count_Base_T.inl b/TAO/tao/Intrusive_Ref_Count_Base_T.inl deleted file mode 100644 index 448763b6c74..00000000000 --- a/TAO/tao/Intrusive_Ref_Count_Base_T.inl +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Base<T>::TAO_Intrusive_Ref_Count_Base () - : ref_count_(1) -{} - - -template <typename T> -ACE_INLINE -void -TAO_Intrusive_Ref_Count_Base<T>::_add_ref() -{ - ++this->ref_count_; -} - - -template <typename T> -ACE_INLINE -void -TAO_Intrusive_Ref_Count_Base<T>::_remove_ref() -{ - long new_count = --this->ref_count_; - - if (new_count != 0) - { - return; - } - - delete this; -} diff --git a/TAO/tao/Intrusive_Ref_Count_Handle_T.cpp b/TAO/tao/Intrusive_Ref_Count_Handle_T.cpp deleted file mode 100644 index f66b1177c48..00000000000 --- a/TAO/tao/Intrusive_Ref_Count_Handle_T.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -#ifndef TAO_INTRUSIVE_REF_COUNT_HANDLE_T_C -#define TAO_INTRUSIVE_REF_COUNT_HANDLE_T_C - -#include "Intrusive_Ref_Count_Handle_T.h" - -#if !defined (__ACE_INLINE__) -#include "tao/Intrusive_Ref_Count_Handle_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID (tao, - Intrusive_Ref_Count_Handle_T, - "$Id$") - -#endif /* TAO_INTRUSIVE_REF_COUNT_HANDLE_T_C */ diff --git a/TAO/tao/Intrusive_Ref_Count_Handle_T.h b/TAO/tao/Intrusive_Ref_Count_Handle_T.h deleted file mode 100644 index ce9a64dc694..00000000000 --- a/TAO/tao/Intrusive_Ref_Count_Handle_T.h +++ /dev/null @@ -1,152 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file Intrusive_Ref_Count_Handle_T.h - * - * $Id$ - * - * @authors Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_INTRUSIVE_REF_COUNT_HANDLE_T_H -#define TAO_INTRUSIVE_REF_COUNT_HANDLE_T_H - -#include /**/ "ace/pre.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -/** - * @class TAO_Intrusive_Ref_Count_Handle<T> - * - * @brief Template class for smart-pointer to (intrusively) ref-counted object. - * - * This class behaves just like a xxx_var type behaves. The only significant - * difference is that this class provides a "bool is_nil() const" method, - * and xxx_var types don't (they use the "bool CORBA::is_nil(xxx_ptr ptr)" - * method instead). For example, - * - * typedef TAO_Intrusive_Ref_Count_Handle<PortableServer::ServantBase> - * MyServantBase_var; - * - * The MyServantBase_var and the PortableServer::ServantBase_var are - * nearly idenitical. The only difference is that the MyServantBase_var - * has a "isNil()" method that indicates whether or not the smart pointer - * is in the 'nil' state or not. - * - * This class can be used to "safely" deal with an instance of a servant. - * For example, we can use a single variable - * TAO_Intrusive_Ref_Count_Handle<Foo_i> - * - * typedef TAO_Intrusive_Ref_Count_Handle<Foo_i> Foo_i_var; - * Foo_i_var servant_; - * - * instead of using two variables - * - * PortableServer::ServantBase_var servant_holder_; - * Foo_i* servant_; - - * to deal with the servant memory. - * - * The Foo_i_var type does everything that the PortableServer::ServantBase_var - * type does. In addition, the Foo_i_var type can provide access to the servant - * as derived class via the arrow operator. - */ -template <typename T> -class TAO_Intrusive_Ref_Count_Handle -{ -public: - - /// Default Ctor - enters the "nil" state. - TAO_Intrusive_Ref_Count_Handle(); - - /// Ctor - By default, takes ownership of passed-in "copy" of reference - /// to T. But the second argument (bool) can be changed from - /// the default value of 'true' to the non-default value of 'false'. - /// The second argument dictates whether or not this handle object - /// should take ownership of the passed-in pointer to the T object. - /// By default, it takes ownership, leaving the reference counter - /// of the T object unchanged. When it is instructed to not take - /// ownership (false value for second arg), then the reference - /// counter of the T object will be incremented so that this - /// handle object has its own "copy". - TAO_Intrusive_Ref_Count_Handle(T* p, bool take_ownership = true); - - /// Copy Ctor - claims a "copy" of rhs object's reference to T. - TAO_Intrusive_Ref_Count_Handle(const TAO_Intrusive_Ref_Count_Handle& b); - - /// Dtor - ~TAO_Intrusive_Ref_Count_Handle(); - - /// Assignment Operator with T* argument. - /// Takes ownership of passed-in "copy" of reference to T. - TAO_Intrusive_Ref_Count_Handle& operator=(T* p); - - /// Assignment Operator with const TAO_Smart_Ptr<T>& argument. - /// Claims a "copy" of rhs object's reference to T. - TAO_Intrusive_Ref_Count_Handle& operator= - (const TAO_Intrusive_Ref_Count_Handle& b); - - /// Const Accessor to underlying pointer (T*) using arrow (->) operator. - T* operator->() const; - - /// Returns true if underlying pointer is NULL (0). - /// Returns false otherwise. - bool is_nil() const; - - /// Used to pass the underlying pointer as an "IN" argument to a method. - T* in() const; - - /// Used to pass the underlying pointer as an "IN/OUT" argument to a method. - T*& inout(); - - /// Used to pass the underlying pointer as an "OUT" argument to a method. - T*& out(); - - /// Used to take-away the underlying pointer from this smart pointer object. - /// Caller becomes responsibe for the returned "copy" to the reference. - /// Always leaves the smart pointer in the "nil" state upon return. - T* _retn(); - - -private: - - /// Claim a "copy" of the reference-counted object by adding - /// one to its reference counter. Do nothing if this smart pointer - /// object is currently in the "nil" state. - void claim(); - - /// Drop our "copy" of the reference-counted object by removing - /// one from its reference counter. Do nothing if this smart pointer - /// object is currently in the "nil" state. - /// Note that this method will always leave this smart pointer - /// in the "nil" state upon its return. - void drop(); - - - /// The underlying pointer to the (intrusively) reference-counted object. - /// Set to 0 when this smart pointer is in the "nil" state. Otherwise, - /// this smart pointer always owns a (reference-counted) "copy" of the - /// object pointed to by the ptr_ data member. - T* ptr_; -}; - -#if defined (__ACE_INLINE__) -#include "Intrusive_Ref_Count_Handle_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Intrusive_Ref_Count_Handle_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Intrusive_Ref_Count_Handle_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include /**/ "ace/post.h" - -#endif /* TAO_INTRUSIVE_REF_COUNT_HANDLE_T_H */ diff --git a/TAO/tao/Intrusive_Ref_Count_Handle_T.inl b/TAO/tao/Intrusive_Ref_Count_Handle_T.inl deleted file mode 100644 index 9c3a1fbe48b..00000000000 --- a/TAO/tao/Intrusive_Ref_Count_Handle_T.inl +++ /dev/null @@ -1,155 +0,0 @@ -// $Id$ - - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Handle<T>::TAO_Intrusive_Ref_Count_Handle() - : ptr_(0) -{ -} - - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Handle<T>::TAO_Intrusive_Ref_Count_Handle - (T* p, - bool take_ownership) - : ptr_(p) -{ - if (!take_ownership) - { - this->claim(); - } -} - - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Handle<T>::TAO_Intrusive_Ref_Count_Handle - (const TAO_Intrusive_Ref_Count_Handle<T>& b) - : ptr_(b.ptr_) -{ - this->claim(); -} - - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Handle<T>::~TAO_Intrusive_Ref_Count_Handle() -{ - this->drop(); -} - - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Handle<T>& -TAO_Intrusive_Ref_Count_Handle<T>::operator=(T* p) -{ - if (this->ptr_ != p) - { - this->drop(); - this->ptr_ = p; - } - - return *this; -} - - -template <typename T> -ACE_INLINE -TAO_Intrusive_Ref_Count_Handle<T>& -TAO_Intrusive_Ref_Count_Handle<T>::operator= - (const TAO_Intrusive_Ref_Count_Handle<T>& b) -{ - if (this->ptr_ != b.ptr_) - { - this->drop(); - this->ptr_ = b.ptr_; - this->claim(); - } - - return *this; -} - - -template <typename T> -ACE_INLINE -T* -TAO_Intrusive_Ref_Count_Handle<T>::operator->() const -{ - return this->ptr_; -} - - -template <typename T> -ACE_INLINE -bool -TAO_Intrusive_Ref_Count_Handle<T>::is_nil() const -{ - return this->ptr_ == 0; -} - - -template <typename T> -ACE_INLINE -T* -TAO_Intrusive_Ref_Count_Handle<T>::in() const -{ - return this->ptr_; -} - - -template <typename T> -ACE_INLINE -T*& -TAO_Intrusive_Ref_Count_Handle<T>::inout() -{ - return this->ptr_; -} - - -template <typename T> -ACE_INLINE -T*& -TAO_Intrusive_Ref_Count_Handle<T>::out() -{ - this->drop(); - return this->ptr_; -} - - -template <typename T> -ACE_INLINE -T* -TAO_Intrusive_Ref_Count_Handle<T>::_retn() -{ - T* retval = this->ptr_; - this->ptr_ = 0; - return retval; -} - - -template <typename T> -ACE_INLINE -void -TAO_Intrusive_Ref_Count_Handle<T>::claim() -{ - if (this->ptr_ != 0) - { - this->ptr_->_add_ref(); - } -} - - -template <typename T> -ACE_INLINE -void -TAO_Intrusive_Ref_Count_Handle<T>::drop() -{ - if (this->ptr_ != 0) - { - this->ptr_->_remove_ref(); - this->ptr_ = 0; - } -} diff --git a/TAO/tao/Makefile.am b/TAO/tao/Makefile.am index c0e2ed3afde..30c9cf929f6 100644 --- a/TAO/tao/Makefile.am +++ b/TAO/tao/Makefile.am @@ -429,12 +429,6 @@ nobase_include_HEADERS = \ Incoming_Message_Queue.h \ Incoming_Message_Queue.inl \ InterfaceDef.pidl \ - Intrusive_Ref_Count_Base_T.cpp \ - Intrusive_Ref_Count_Base_T.h \ - Intrusive_Ref_Count_Base_T.inl \ - Intrusive_Ref_Count_Handle_T.cpp \ - Intrusive_Ref_Count_Handle_T.h \ - Intrusive_Ref_Count_Handle_T.inl \ InvalidName.pidl \ Invocation_Adapter.h \ Invocation_Adapter.inl \ @@ -1630,178 +1624,6 @@ EXTRA_DIST += \ PortableServer/TAO_PortableServer.rc -## Makefile.CSD_Framework.am - -lib_LTLIBRARIES += libTAO_CSD_Framework.la - -libTAO_CSD_Framework_la_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(TAO_ROOT) \ - -I$(TAO_BUILDDIR) \ - -I$(TAO_ROOT)/tao \ - -DTAO_CSD_FW_BUILD_DLL - -libTAO_CSD_Framework_la_SOURCES = \ - CSD_Framework/CSD_Default_Servant_Dispatcher.cpp \ - CSD_Framework/CSD_FW_Server_Request_Wrapper.cpp \ - CSD_Framework/CSD_FrameworkA.cpp \ - CSD_Framework/CSD_FrameworkC.cpp \ - CSD_Framework/CSD_Framework_Loader.cpp \ - CSD_Framework/CSD_ORBInitializer.cpp \ - CSD_Framework/CSD_Object_Adapter.cpp \ - CSD_Framework/CSD_Object_Adapter_Factory.cpp \ - CSD_Framework/CSD_POA.cpp \ - CSD_Framework/CSD_Strategy_Base.cpp \ - CSD_Framework/CSD_Strategy_Proxy.cpp \ - CSD_Framework/CSD_Strategy_Repository.cpp - -libTAO_CSD_Framework_la_LDFLAGS = \ - -version-number @TAO_MAJOR@:@TAO_MINOR@:@TAO_BETA@ - -libTAO_CSD_Framework_la_LIBADD = \ - libTAO_PI.la \ - libTAO_CodecFactory.la \ - libTAO_PortableServer.la \ - libTAO_AnyTypeCode.la \ - libTAO.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -nobase_include_HEADERS += \ - CSD_Framework/CSD_Default_Servant_Dispatcher.h \ - CSD_Framework/CSD_FW_Export.h \ - CSD_Framework/CSD_FW_Server_Request_Wrapper.h \ - CSD_Framework/CSD_FW_Server_Request_Wrapper.inl \ - CSD_Framework/CSD_Framework.pidl \ - CSD_Framework/CSD_FrameworkA.h \ - CSD_Framework/CSD_FrameworkC.h \ - CSD_Framework/CSD_FrameworkC.inl \ - CSD_Framework/CSD_Framework_Loader.h \ - CSD_Framework/CSD_ORBInitializer.h \ - CSD_Framework/CSD_Object_Adapter.h \ - CSD_Framework/CSD_Object_Adapter_Factory.h \ - CSD_Framework/CSD_POA.h \ - CSD_Framework/CSD_POA.inl \ - CSD_Framework/CSD_Strategy_Base.h \ - CSD_Framework/CSD_Strategy_Base.inl \ - CSD_Framework/CSD_Strategy_Proxy.h \ - CSD_Framework/CSD_Strategy_Proxy.inl \ - CSD_Framework/CSD_Strategy_Repository.h - -pkgconfig_DATA += \ - TAO_CSD_Framework.pc - -CLEANFILES += \ - TAO_CSD_Framework.pc - -TAO_CSD_Framework.pc: ${top_builddir}/config.status ${srcdir}/CSD_Framework/TAO_CSD_Framework.pc.in - ${top_builddir}/config.status --file $@:${srcdir}/CSD_Framework/TAO_CSD_Framework.pc.in - -EXTRA_DIST += \ - CSD_Framework/TAO_CSD_Framework.pc.in - - -## Makefile.CSD_ThreadPool.am - -lib_LTLIBRARIES += libTAO_CSD_ThreadPool.la - -libTAO_CSD_ThreadPool_la_CPPFLAGS = \ - -I$(ACE_ROOT) \ - -I$(ACE_BUILDDIR) \ - -I$(TAO_ROOT) \ - -I$(TAO_BUILDDIR) \ - -I$(TAO_ROOT)/tao \ - -DTAO_CSD_TP_BUILD_DLL - -libTAO_CSD_ThreadPool_la_SOURCES = \ - CSD_ThreadPool/CSD_TP_Cancel_Visitor.cpp \ - CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.cpp \ - CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.cpp \ - CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.cpp \ - CSD_ThreadPool/CSD_TP_Corba_Request.cpp \ - CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.cpp \ - CSD_ThreadPool/CSD_TP_Custom_Request.cpp \ - CSD_ThreadPool/CSD_TP_Custom_Request_Operation.cpp \ - CSD_ThreadPool/CSD_TP_Custom_Synch_Request.cpp \ - CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.cpp \ - CSD_ThreadPool/CSD_TP_Queue.cpp \ - CSD_ThreadPool/CSD_TP_Queue_Visitor.cpp \ - CSD_ThreadPool/CSD_TP_Remote_Request.cpp \ - CSD_ThreadPool/CSD_TP_Request.cpp \ - CSD_ThreadPool/CSD_TP_Servant_State.cpp \ - CSD_ThreadPool/CSD_TP_Servant_State_Map.cpp \ - CSD_ThreadPool/CSD_TP_Strategy.cpp \ - CSD_ThreadPool/CSD_TP_Strategy_Factory.cpp \ - CSD_ThreadPool/CSD_TP_Synch_Helper.cpp \ - CSD_ThreadPool/CSD_TP_Task.cpp \ - CSD_ThreadPool/CSD_ThreadPool.cpp - -libTAO_CSD_ThreadPool_la_LDFLAGS = \ - -version-number @TAO_MAJOR@:@TAO_MINOR@:@TAO_BETA@ - -libTAO_CSD_ThreadPool_la_LIBADD = \ - libTAO_CSD_Framework.la \ - libTAO_PortableServer.la \ - libTAO_AnyTypeCode.la \ - libTAO.la \ - $(ACE_BUILDDIR)/ace/libACE.la - -nobase_include_HEADERS += \ - CSD_ThreadPool/CSD_TP_Cancel_Visitor.h \ - CSD_ThreadPool/CSD_TP_Cancel_Visitor.inl \ - CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.h \ - CSD_ThreadPool/CSD_TP_Collocated_Asynch_Request.inl \ - CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.h \ - CSD_ThreadPool/CSD_TP_Collocated_Synch_Request.inl \ - CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.h \ - CSD_ThreadPool/CSD_TP_Collocated_Synch_With_Server_Request.inl \ - CSD_ThreadPool/CSD_TP_Corba_Request.h \ - CSD_ThreadPool/CSD_TP_Corba_Request.inl \ - CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.h \ - CSD_ThreadPool/CSD_TP_Custom_Asynch_Request.inl \ - CSD_ThreadPool/CSD_TP_Custom_Request.h \ - CSD_ThreadPool/CSD_TP_Custom_Request.inl \ - CSD_ThreadPool/CSD_TP_Custom_Request_Operation.h \ - CSD_ThreadPool/CSD_TP_Custom_Request_Operation.inl \ - CSD_ThreadPool/CSD_TP_Custom_Synch_Request.h \ - CSD_ThreadPool/CSD_TP_Custom_Synch_Request.inl \ - CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.h \ - CSD_ThreadPool/CSD_TP_Dispatchable_Visitor.inl \ - CSD_ThreadPool/CSD_TP_Export.h \ - CSD_ThreadPool/CSD_TP_Queue.h \ - CSD_ThreadPool/CSD_TP_Queue.inl \ - CSD_ThreadPool/CSD_TP_Queue_Visitor.h \ - CSD_ThreadPool/CSD_TP_Queue_Visitor.inl \ - CSD_ThreadPool/CSD_TP_Remote_Request.h \ - CSD_ThreadPool/CSD_TP_Remote_Request.inl \ - CSD_ThreadPool/CSD_TP_Request.h \ - CSD_ThreadPool/CSD_TP_Request.inl \ - CSD_ThreadPool/CSD_TP_Servant_State.h \ - CSD_ThreadPool/CSD_TP_Servant_State.inl \ - CSD_ThreadPool/CSD_TP_Servant_State_Map.h \ - CSD_ThreadPool/CSD_TP_Servant_State_Map.inl \ - CSD_ThreadPool/CSD_TP_Strategy.h \ - CSD_ThreadPool/CSD_TP_Strategy.inl \ - CSD_ThreadPool/CSD_TP_Strategy_Factory.h \ - CSD_ThreadPool/CSD_TP_Synch_Helper.h \ - CSD_ThreadPool/CSD_TP_Synch_Helper.inl \ - CSD_ThreadPool/CSD_TP_Task.h \ - CSD_ThreadPool/CSD_TP_Task.inl \ - CSD_ThreadPool/CSD_ThreadPool.h - -pkgconfig_DATA += \ - TAO_CSD_ThreadPool.pc - -CLEANFILES += \ - TAO_CSD_ThreadPool.pc - -TAO_CSD_ThreadPool.pc: ${top_builddir}/config.status ${srcdir}/CSD_ThreadPool/TAO_CSD_ThreadPool.pc.in - ${top_builddir}/config.status --file $@:${srcdir}/CSD_ThreadPool/TAO_CSD_ThreadPool.pc.in - -EXTRA_DIST += \ - CSD_ThreadPool/TAO_CSD_ThreadPool.pc.in - - ## Makefile.IFR_Client.am lib_LTLIBRARIES += libTAO_IFR_Client.la @@ -2049,7 +1871,6 @@ libTAO_Messaging_la_SOURCES = \ Messaging/Asynch_Reply_Dispatcher.cpp \ Messaging/Asynch_Timeout_Handler.cpp \ Messaging/Connection_Timeout_Policy_i.cpp \ - Messaging/ExceptionHolder_i.cpp \ Messaging/ExceptionHolderA.cpp \ Messaging/ExceptionHolderC.cpp \ Messaging/Messaging.cpp \ @@ -2092,7 +1913,6 @@ nobase_include_HEADERS += \ Messaging/Asynch_Timeout_Handler.h \ Messaging/Connection_Timeout_Policy_i.h \ Messaging/ExceptionHolder.pidl \ - Messaging/ExceptionHolder_i.h \ Messaging/ExceptionHolderA.h \ Messaging/ExceptionHolderC.h \ Messaging/ExceptionHolderC.inl \ diff --git a/TAO/tao/Messaging/AMH_Response_Handler.cpp b/TAO/tao/Messaging/AMH_Response_Handler.cpp index 4c190f27612..7d8710b6fac 100644 --- a/TAO/tao/Messaging/AMH_Response_Handler.cpp +++ b/TAO/tao/Messaging/AMH_Response_Handler.cpp @@ -48,25 +48,25 @@ TAO_AMH_Response_Handler::~TAO_AMH_Response_Handler (void) { return; } - } - // If sending the exception to the client fails, then we just give - // up, release the transport and return. - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::NO_RESPONSE ex (CORBA::SystemException::_tao_minor_code - (TAO_AMH_REPLY_LOCATION_CODE, - EFAULT), - CORBA::COMPLETED_NO); - this->_tao_rh_send_exception (ex ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - } - ACE_ENDTRY; - ACE_CHECK; + // If sending the exception to the client fails, then we just give + // up, release the transport and return. + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + CORBA::NO_RESPONSE ex (CORBA::SystemException::_tao_minor_code + (TAO_AMH_REPLY_LOCATION_CODE, + EFAULT), + CORBA::COMPLETED_NO); + this->_tao_rh_send_exception (ex ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHALL + { + } + ACE_ENDTRY; + ACE_CHECK; + } } void @@ -186,10 +186,10 @@ TAO_AMH_Response_Handler::_tao_rh_send_exception (CORBA::Exception &ex if (this->reply_status_ != TAO_RS_UNINITIALIZED) { ACE_THROW (CORBA::BAD_INV_ORDER ( - CORBA::SystemException::_tao_minor_code ( - TAO_AMH_REPLY_LOCATION_CODE, - ENOTSUP), - CORBA::COMPLETED_YES)); + CORBA::SystemException::_tao_minor_code ( + TAO_AMH_REPLY_LOCATION_CODE, + ENOTSUP), + CORBA::COMPLETED_YES)); } this->reply_status_ = TAO_RS_SENDING; } @@ -259,3 +259,4 @@ namespace TAO (void) arh->_remove_ref (); } } + diff --git a/TAO/tao/Messaging/ExceptionHolder_i.cpp b/TAO/tao/Messaging/ExceptionHolder_i.cpp deleted file mode 100644 index d49d870cb82..00000000000 --- a/TAO/tao/Messaging/ExceptionHolder_i.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// -*- C++ -*- -// $Id$ - -#include "tao/Messaging/ExceptionHolder_i.h" - -ACE_RCSID (Messaging, - ExceptionHolder_i, - "$Id$") - -#if !defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) - -#include "tao/Messaging/Messaging.h" - -namespace TAO -{ - ExceptionHolder::ExceptionHolder ( - ::CORBA::Boolean is_system_exception, - ::CORBA::Boolean byte_order, - const ::CORBA::OctetSeq &marshaled_exception, - ::TAO::Exception_Data* data, - ::CORBA::ULong exceptions_count) : - ::OBV_Messaging::ExceptionHolder (), - ::CORBA::DefaultValueRefCountBase (), - data_ (data), - count_ (exceptions_count) - { - // @todo According to the latest corba spec we should be able to - // pass this to the ExceptionHolder constructor but the TAO_IDL - // compiler doesn't seem to generate this. - this->is_system_exception (is_system_exception); - this->byte_order (byte_order); - this->marshaled_exception (marshaled_exception); - } - - ExceptionHolder::~ExceptionHolder () - { - } - - void ExceptionHolder::raise_exception ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - { - TAO_Messaging_Helper::exception_holder_raise ( - this->data_, - this->count_, - this->marshaled_exception ().get_buffer (), - this->marshaled_exception ().length (), - this->byte_order (), - this->is_system_exception () - ACE_ENV_ARG_PARAMETER); - } - - void ExceptionHolder::raise_exception_with_list ( - const ::Dynamic::ExceptionList & ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - { - // todo convert exceptionlist to something we can really use. - this->raise_exception (ACE_ENV_SINGLE_ARG_PARAMETER); - } -} - -#endif diff --git a/TAO/tao/Messaging/ExceptionHolder_i.h b/TAO/tao/Messaging/ExceptionHolder_i.h deleted file mode 100644 index c2b6ce86b3f..00000000000 --- a/TAO/tao/Messaging/ExceptionHolder_i.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ExceptionHolder_i.h - * - * $Id$ - * - * @author Johnny Willemsen <jwillemsen@remedy.nl> - */ -//============================================================================= - -#ifndef TAO_MESSAGING_EXCEPTIONHOLDER_I_H -#define TAO_MESSAGING_EXCEPTIONHOLDER_I_H -#include /**/ "ace/pre.h" - -#include "tao/Messaging/messaging_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/orbconf.h" - -#if !defined (TAO_HAS_DEPRECATED_EXCEPTION_HOLDER) - -#include "tao/Messaging/ExceptionHolderA.h" -#include "tao/Messaging/ExceptionHolderC.h" - -namespace Dynamic -{ - class ExceptionList; -} - -namespace Messaging -{ - class ReplyHandler; -} - -namespace TAO -{ - class Exception_Data; - - class TAO_Messaging_Export ExceptionHolder - : public virtual ::OBV_Messaging::ExceptionHolder, - public virtual ::CORBA::DefaultValueRefCountBase - { - public: - ExceptionHolder ( - ::CORBA::Boolean is_system_exception, - ::CORBA::Boolean byte_order, - const ::CORBA::OctetSeq &marshaled_exception, - ::TAO::Exception_Data* data_, - ::CORBA::ULong exceptions_count - ); - - virtual ~ExceptionHolder (); - - virtual void raise_exception (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); - - virtual void raise_exception_with_list ( - const ::Dynamic::ExceptionList & ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - private: - TAO::Exception_Data* data_; - CORBA::ULong count_; - }; -} - -#endif - -#include /**/ "ace/post.h" -#endif /* TAO_MESSAGING_EXCEPTIONHOLDER_I_H */ - diff --git a/TAO/tao/PortableServer/Object_Adapter.cpp b/TAO/tao/PortableServer/Object_Adapter.cpp index c1a6c27d759..6ad3cc7ad62 100644 --- a/TAO/tao/PortableServer/Object_Adapter.cpp +++ b/TAO/tao/PortableServer/Object_Adapter.cpp @@ -355,7 +355,9 @@ TAO_Object_Adapter::dispatch_servant (const TAO::ObjectKey &key, { ACE_FUNCTION_TIMEPROBE (TAO_SERVANT_DISPATCH_START); - do_dispatch (req, servant_upcall ACE_ENV_ARG_PARAMETER); + servant_upcall.servant ()->_dispatch (req, + &servant_upcall + ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (result); } @@ -1240,14 +1242,3 @@ TAO_Object_Adapter::servant_dispatcher (TAO_Servant_Dispatcher *dispatcher) this->servant_dispatcher_ = dispatcher; } -void -TAO_Object_Adapter::do_dispatch (TAO_ServerRequest& req, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL) -{ - upcall.servant ()->_dispatch(req, - &upcall - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - diff --git a/TAO/tao/PortableServer/Object_Adapter.h b/TAO/tao/PortableServer/Object_Adapter.h index 85587c99c0f..a3605dc2f11 100644 --- a/TAO/tao/PortableServer/Object_Adapter.h +++ b/TAO/tao/PortableServer/Object_Adapter.h @@ -217,10 +217,6 @@ protected: static ACE_Lock *create_lock (int enable_locking, TAO_SYNCH_MUTEX &thread_lock); - virtual void do_dispatch (TAO_ServerRequest& req, - TAO::Portable_Server::Servant_Upcall& upcall - ACE_ENV_ARG_DECL); - public: /** diff --git a/TAO/tao/PortableServer/POAManager.cpp b/TAO/tao/PortableServer/POAManager.cpp index 186b51c9163..539f5d0cd9d 100644 --- a/TAO/tao/PortableServer/POAManager.cpp +++ b/TAO/tao/PortableServer/POAManager.cpp @@ -51,15 +51,6 @@ TAO_POA_Manager::activate_i (ACE_ENV_SINGLE_ARG_DECL) else { this->state_ = PortableServer::POAManager::ACTIVE; - // Find the poas that applied the custom servant dispatching - // strategy to launch the dispatching threads. - - for (POA_COLLECTION::iterator iterator = this->poa_collection_.begin (); - iterator != this->poa_collection_.end (); - ++iterator) - { - (*iterator)->poa_activated_hook (); - } } this->adapter_manager_state_changed (this->state_ @@ -126,10 +117,6 @@ TAO_POA_Manager::deactivate_i (CORBA::Boolean etherealize_objects, ++iterator) { TAO_Root_POA *poa = *iterator; - // Notify the poas that applied the custom servant dispatching - // strategy to stop the dispatching threads. - poa->poa_deactivated_hook (); - poa->deactivate_all_objects_i (etherealize_objects, wait_for_completion ACE_ENV_ARG_PARAMETER); diff --git a/TAO/tao/PortableServer/Root_POA.cpp b/TAO/tao/PortableServer/Root_POA.cpp index 7ff329f3a3f..4a132bd1766 100644 --- a/TAO/tao/PortableServer/Root_POA.cpp +++ b/TAO/tao/PortableServer/Root_POA.cpp @@ -822,10 +822,6 @@ TAO_Root_POA::destroy_i (CORBA::Boolean etherealize_objects, this->cleanup_in_progress_ = 1; - // Inform the custom servant dispatching strategy to stop the working - // threads when the poa is destroyed. - this->poa_deactivated_hook (); - // This operation destroys the POA and all descendant POAs. The POA // so destroyed (that is, the POA with its name) may be re-created // later in the same process. (This differs from the @@ -2896,31 +2892,3 @@ TAO_POA_Static_Resources::TAO_POA_Static_Resources (void) { } -void -TAO_Root_POA::poa_activated_hook () -{ - //no-ops -} - -void -TAO_Root_POA::poa_deactivated_hook () -{ - //no-ops -} - -void -TAO_Root_POA::servant_activated_hook (PortableServer::Servant, - const PortableServer::ObjectId& - ACE_ENV_ARG_DECL) -{ - //no-ops -} - -void -TAO_Root_POA::servant_deactivated_hook (PortableServer::Servant, - const PortableServer::ObjectId& - ACE_ENV_ARG_DECL) -{ - //no-ops -} - diff --git a/TAO/tao/PortableServer/Root_POA.h b/TAO/tao/PortableServer/Root_POA.h index 313bd5bb093..7fcd071f9f7 100644 --- a/TAO/tao/PortableServer/Root_POA.h +++ b/TAO/tao/PortableServer/Root_POA.h @@ -561,25 +561,6 @@ public: ACE_ENV_SINGLE_ARG_DECL ); - /// These hooks are needed by the CSD strategy to override - /// and no-ops by default. - - /// Hook - The POA has been (or is being) activated. - virtual void poa_activated_hook (); - - /// Hook - The POA has been deactivated. - virtual void poa_deactivated_hook (); - - /// Hook - A servant has been activated. - virtual void servant_activated_hook (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - - /// Hook - A servant has been deactivated. - virtual void servant_deactivated_hook (PortableServer::Servant servant, - const PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - protected: #if (TAO_HAS_MINIMUM_POA == 0) diff --git a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp index 3e054666f24..87cf5b4defe 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp +++ b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp @@ -105,18 +105,6 @@ namespace TAO // Decrement the reference count. CORBA::UShort new_count = --active_object_map_entry->reference_count_; - // Inform the custom servant dispatching (CSD) strategy that the - // servant is deactivated. This would be called just once when the - // servant is deactivated the first time. - if (active_object_map_entry->deactivated_ == 0) - { - this->poa_->servant_deactivated_hook ( - active_object_map_entry->servant_, - active_object_map_entry->user_id_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - if (new_count == 0) { this->poa_->cleanup_servant (active_object_map_entry->servant_, @@ -569,13 +557,6 @@ namespace TAO // Everything is finally ok // - // Inform the custom servant dispatching (CSD) strategy that the - // sevant is activated. - this->poa_->servant_activated_hook (servant, - user_id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - // ATTENTION: Trick locking here, see class header for details Non_Servant_Upcall non_servant_upcall (*this->poa_); ACE_UNUSED_ARG (non_servant_upcall); @@ -654,13 +635,6 @@ namespace TAO // Everything is finally ok // - // Inform the custom servant dispatching (CSD) strategy that the - // sevant is activated. - this->poa_->servant_activated_hook (servant, - system_id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - // ATTENTION: Trick locking here, see class header for details Non_Servant_Upcall non_servant_upcall (*this->poa_); ACE_UNUSED_ARG (non_servant_upcall); @@ -784,13 +758,6 @@ namespace TAO // Everything is finally ok // - // Inform the custom servant dispatching (CSD) strategy that the - // sevant is activated. - this->poa_->servant_activated_hook (servant, - user_id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - // ATTENTION: Trick locking here, see class header for details Non_Servant_Upcall non_servant_upcall (*this->poa_); ACE_UNUSED_ARG (non_servant_upcall); @@ -898,13 +865,6 @@ namespace TAO // Everything is finally ok // - // Inform the custom servant dispatching (CSD) strategy that the - // sevant is activated. - this->poa_->servant_activated_hook (servant, - id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - // ATTENTION: Trick locking here, see class header for details Non_Servant_Upcall non_servant_upcall (*this->poa_); ACE_UNUSED_ARG (non_servant_upcall); diff --git a/TAO/tao/PortableServer/get_arg.h b/TAO/tao/PortableServer/get_arg.h index 498035b3ed8..bf7a2fc892f 100644 --- a/TAO/tao/PortableServer/get_arg.h +++ b/TAO/tao/PortableServer/get_arg.h @@ -79,7 +79,7 @@ namespace TAO size_t i) { return - (details != 0 && details->args () != 0) + details ? static_cast<typename TAO::Arg_Traits<T>::in_arg_val *> ( details->args ()[i])->arg () : static_cast<typename TAO::SArg_Traits<T>::in_arg_val *> ( diff --git a/TAO/tao/Service_Context.h b/TAO/tao/Service_Context.h index b5ac3727b15..348bec7c061 100644 --- a/TAO/tao/Service_Context.h +++ b/TAO/tao/Service_Context.h @@ -23,14 +23,6 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -namespace TAO -{ - namespace CSD - { - class FW_Server_Request_Wrapper; - } -} - /** * @class TAO_Service_Context * @@ -60,11 +52,6 @@ namespace TAO class TAO_Export TAO_Service_Context { public: - /// Declare FW_Server_Request_Wrapper a friend - /// This friendship makes the FW_Server_Request_Wrapper be able to - /// clone the TAO_Service_Context data member in TAO_ServerRequest. - friend class TAO::CSD::FW_Server_Request_Wrapper; - /// Constructor TAO_Service_Context (void); diff --git a/TAO/tao/TAO_Server_Request.h b/TAO/tao/TAO_Server_Request.h index 29b11e2503a..288fd4a2723 100644 --- a/TAO/tao/TAO_Server_Request.h +++ b/TAO/tao/TAO_Server_Request.h @@ -52,14 +52,6 @@ namespace CORBA class Exception; } -namespace TAO -{ - namespace CSD - { - class FW_Server_Request_Wrapper; - } -} - class TAO_Operation_Details; /** @@ -73,12 +65,6 @@ class TAO_Operation_Details; class TAO_Export TAO_ServerRequest { public: - - /// Declare FW_Server_Request_Wrapper a friend - /// This friendship makes the FW_Server_Request_Wrapper be able to - /// clone the TAO_ServerRequest. - friend class TAO::CSD::FW_Server_Request_Wrapper; - /// Declare TAO_AMH_Response_Handler a friend /** * The TAO_AMH_Response_Handler class needs to copy part of the @@ -333,7 +319,7 @@ private: /// Used to pad CDR stream if we have used DSI. ptrdiff_t dsi_nvlist_align_; - TAO_Operation_Details const * operation_details_; + TAO_Operation_Details const * const operation_details_; /** * An argument flag to indicate whether there is any data that is diff --git a/TAO/tao/Tagged_Profile.h b/TAO/tao/Tagged_Profile.h index b7706dca0c7..5e9e10f8348 100644 --- a/TAO/tao/Tagged_Profile.h +++ b/TAO/tao/Tagged_Profile.h @@ -24,14 +24,6 @@ #include "tao/Object_KeyC.h" #include "ace/SString.h" -namespace TAO -{ - namespace CSD - { - class FW_Server_Request_Wrapper; - } -} - /** * @class TAO_Tagged_Profile * @@ -42,12 +34,6 @@ namespace TAO class TAO_Export TAO_Tagged_Profile { public: - - /// Declare FW_Server_Request_Wrapper a friend - /// This friendship makes the FW_Server_Request_Wrapper be able to - /// clone the TAO_Tagged_Profile data member in TAO_ServerRequest. - friend class TAO::CSD::FW_Server_Request_Wrapper; - /// Ctor TAO_Tagged_Profile (TAO_ORB_Core *orb_core); diff --git a/TAO/tao/Valuetype/Value_VarOut_T.cpp b/TAO/tao/Valuetype/Value_VarOut_T.cpp index 1640adeabba..884ec566468 100644 --- a/TAO/tao/Valuetype/Value_VarOut_T.cpp +++ b/TAO/tao/Valuetype/Value_VarOut_T.cpp @@ -6,7 +6,6 @@ #include "tao/Valuetype/Value_VarOut_T.h" #include "tao/Valuetype/Value_CORBA_methods.h" -#include <algorithm> /* For std::swap<>() */ template<typename T> void @@ -71,18 +70,23 @@ template <typename T> TAO_Value_Var_T<T> & TAO_Value_Var_T<T>::operator= (T * p) { - TAO_Value_Var_T<T> tmp (p); - std::swap (this->ptr_, tmp.ptr_); - + TAO::Value_Traits<T>::remove_ref (this->ptr_); + this->ptr_ = p; + TAO::Value_Traits<T>::add_ref (p); return *this; } template <typename T> TAO_Value_Var_T<T> & -TAO_Value_Var_T<T>::operator= (const TAO_Value_Var_T<T> & p) -{ - TAO_Value_Var_T<T> tmp (p); - std::swap (this->ptr_, tmp.ptr_); +TAO_Value_Var_T<T>::operator= (const TAO_Value_Var_T & p) +{ + if (this != &p) + { + TAO::Value_Traits<T>::remove_ref (this->ptr_); + T * tmp = p.ptr (); + TAO::Value_Traits<T>::add_ref (tmp); + this->ptr_ = tmp; + } return *this; } diff --git a/TAO/tao/operation_details.h b/TAO/tao/operation_details.h index 55df7ee8328..8748d0f6147 100644 --- a/TAO/tao/operation_details.h +++ b/TAO/tao/operation_details.h @@ -37,14 +37,6 @@ namespace TAO struct Exception_Data; } -namespace TAO -{ - namespace CSD - { - class FW_Server_Request_Wrapper; - } -} - /** * @class TAO_Operation_Details * @@ -61,11 +53,6 @@ class TAO_Export TAO_Operation_Details { public: - /// Declare FW_Server_Request_Wrapper a friend - /// This friendship makes the FW_Server_Request_Wrapper be able to - /// clone the TAO_Operation_Details data member in TAO_ServerRequest. - friend class TAO::CSD::FW_Server_Request_Wrapper; - /// Constructor TAO_Operation_Details (const char *name, CORBA::ULong len, diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/CSD_TP_Broken.mpc b/TAO/tests/CSD_Strategy_Tests/Broken/CSD_TP_Broken.mpc deleted file mode 100644 index 016caef75ef..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/CSD_TP_Broken.mpc +++ /dev/null @@ -1,21 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_tp_test_exe_b { - exename=server_main - - Source_Files { - ServerApp.cpp - server_main.cpp - } -} - -project(*Client): csd_tp_test_exe_b { - exename=client_main - - Source_Files { - ClientApp.cpp - client_main.cpp - } -} - diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/ClientApp.cpp b/TAO/tests/CSD_Strategy_Tests/Broken/ClientApp.cpp deleted file mode 100644 index f9d264a5ed7..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/ClientApp.cpp +++ /dev/null @@ -1,318 +0,0 @@ -// $Id$ -#include "ClientApp.h" -#include "AppHelper.h" -#include "OrbRunner.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "Foo_B_ClientEngine.h" -#include "ace/Get_Opt.h" - - -ClientApp::ClientApp() -: TestAppBase("TP_Test_3_Client"), - client_task_ (true), // shutdown orb after client is done. - num_servants_ (1), - num_csd_threads_ (1), - num_orb_threads_ (1), - ior_("Not Set"), - client_kind_(0), - client_id_(0) -{ -} - - -ClientApp::~ClientApp() -{ -} - - -int -ClientApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - if (result != 0) - { - return result; - } - ACE_CHECK_RETURN (-1); - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->client_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_clients(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->cleanup(); - - return this->check_validity () ? 0 : -1; -} - - -int -ClientApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheAppShutdown->init(this->orb_.in(), num_servants_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ClientApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ClientApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; -} - - -void -ClientApp::client_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - // Turn the ior_ into a Foo_B obj ref. - Foo_B_var foo = RefHelper<Foo_B>::string_to_ref(this->orb_.in(), - this->ior_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->servants_.create_and_activate(1, // number of callback servants - this->poa_.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - ServantListType::T_stub_var cb = this->servants_.objref(0); - - // Create the ClientEngine object, and give it the Foo_B and Callback object - // references. - ClientEngine_Handle engine - = new Foo_B_ClientEngine(foo.in(), cb.in (), this->client_id_); - this->client_task_.add_engine(engine.in()); -} - - -void -ClientApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ClientApp::run_clients(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->client_task_.open() != 0) - { - ACE_THROW (TestAppException ()); - } -} - - -void -ClientApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -PortableServer::POA_ptr -ClientApp::create_poa(CORBA::ORB_ptr orb, const char* poa_name ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -void -ClientApp::cleanup() -{ -} - - -int -ClientApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "i:k:n:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'i': - this->ior_ = get_opts.opt_arg(); - break; - - case 'k': - result = set_arg(this->client_kind_, - get_opts.opt_arg(), - c, - "client_kind"); - break; - - case 'n': - result = set_arg(this->client_id_, - get_opts.opt_arg(), - c, - "client_id"); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ClientApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-i <ior>]\n" - "\t[-k <client_kind>]\n" - "\t[-n <client_id>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ClientApp::arg_dependency_checks() -{ - if (this->ior_ == "Not Set") - { - ACE_ERROR((LM_ERROR, - "Error: Missing required command-line option (-i <ior>).\n")); - this->usage_statement(); - return -1; - } - if (this->client_id_ <= 0) - { - ACE_ERROR((LM_ERROR, - "Error: Invalid command-line option (-n <client id>). \n" - " The client id should be positive integer. \n")); - this->usage_statement(); - return -1; - } - - return 0; -} - - -int -ClientApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - return 0; -} - - -bool -ClientApp::check_validity () -{ - // Check whether the clients return any errors. - if (this->client_task_.failure_count () > 0) - { - return false; - } - - return true; -} - diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/ClientApp.h b/TAO/tests/CSD_Strategy_Tests/Broken/ClientApp.h deleted file mode 100644 index 846384224f5..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/ClientApp.h +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ -#ifndef CLIENTAPP_H -#define CLIENTAPP_H - -#include "TestAppBase.h" -#include "ClientEngine.h" -#include "ServantList_T.h" -#include "Callback_i.h" -#include "ClientTask.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/ORB.h" -#include "ace/SString.h" - - -class ClientApp : public TestAppBase -{ - public: - - ClientApp(); - virtual ~ClientApp(); - - protected: - - virtual int run_i(int argc, char* argv[] ACE_ENV_ARG_DECL); - - - private: - - // These are all called, in order, by the run_i() method. - int init(int argc, char* argv[] ACE_ENV_ARG_DECL); - void poa_setup(ACE_ENV_SINGLE_ARG_DECL); - void csd_setup(ACE_ENV_SINGLE_ARG_DECL); - void client_setup(ACE_ENV_SINGLE_ARG_DECL); - void poa_activate(ACE_ENV_SINGLE_ARG_DECL); - void run_clients(ACE_ENV_SINGLE_ARG_DECL); - void run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL); - bool check_validity (); - void cleanup(); - - // Helper methods used by the methods above. - int parse_args(int argc, char* argv[]); - - int set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min = 0); - - void usage_statement(); - int arg_dependency_checks(); - - PortableServer::POA_ptr create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL); - - - typedef ServantList<Callback_i> ServantListType; - - CORBA::ORB_var orb_; - PortableServer::POA_var poa_; - TAO::CSD::TP_Strategy_Handle tp_strategy_; - - ServantListType servants_; - - ClientTask client_task_; - - ACE_CString exe_name_; - - unsigned num_servants_; - unsigned num_csd_threads_; - unsigned num_orb_threads_; - - ACE_CString ior_; - unsigned client_kind_; - unsigned client_id_; -}; - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/ServerApp.cpp b/TAO/tests/CSD_Strategy_Tests/Broken/ServerApp.cpp deleted file mode 100644 index e84221c8a35..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/ServerApp.cpp +++ /dev/null @@ -1,417 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "AppHelper.h" -#include "OrbRunner.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "Foo_B_SimpleClientEngine.h" -#include "Callback_i.h" -#include "ace/OS.h" -#include "ace/Get_Opt.h" - - -ServerApp::ServerApp() - : TestAppBase("TP_Test_3_Server"), - ior_filename_prefix_("foo"), - num_servants_(1), - num_csd_threads_(1), - num_orb_threads_(1), - num_remote_clients_(1), - num_collocated_clients_(0), - collocated_client_kind_(0) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - if (result != 0) - { - return result; - } - ACE_CHECK_RETURN (-1); - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->servant_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->collocated_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_collocated_clients(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->cleanup(); - return this->check_validity () ? 0 : -1; -} - - -int -ServerApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - unsigned num_clients = this->num_remote_clients_ + - this->num_collocated_clients_; - - TheAppShutdown->init(this->orb_.in(), num_clients ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ServerApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (this->num_collocated_clients_ > 0) - { - this->cb_poa_ = this->create_poa(this->orb_.in(), - "CallbackPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -void -ServerApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - -// We don't apply the strategy for this test to show that the bug isn't -// part of the CSD ThreadPool Strategy code. -#if 0 - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; -#endif - - // Use another poa and strategy for callbacks. This would resolve - // the deadlock situation that happens when having number of csd - // threads less than number of collocated clients. - if (this->num_collocated_clients_ > 0) - { - this->cb_tp_strategy_ = new TAO::CSD::TP_Strategy(); -// We don't apply the strategy for this test to show that the bug isn't -// part of the CSD ThreadPool Strategy code. -#if 0 - if (!this->cb_tp_strategy_->apply_to(this->cb_poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to callback poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; -#endif - } -} - - -void -ServerApp::servant_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->foo_servants_.create_and_activate(this->num_servants_, - this->orb_.in (), - this->poa_.in (), - this->ior_filename_prefix_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::collocated_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ == 0) - return; - - this->cb_servants_.create_and_activate(1, // number of callback servants - this->cb_poa_.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CallbackServantListType::T_stub_var cb = this->cb_servants_.objref(0); - - unsigned client_id = this->num_remote_clients_; - - for (unsigned i = 0; i < this->num_collocated_clients_; i++) - { - client_id ++; - // Dole out the servant object references in a round-robin fashion. - unsigned servant_index = i % this->num_servants_; - - FooServantListType::T_stub_var foo - = this->foo_servants_.objref(servant_index); - ClientEngine_Handle engine - = new Foo_B_SimpleClientEngine(foo.in(), cb.in (), client_id, true); - this->collocated_client_task_.add_engine(engine.in()); - } -} - - -void -ServerApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::run_collocated_clients(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ > 0) - { - if (this->collocated_client_task_.open() == -1) - { - ACE_THROW (TestAppException ()); - } - } -} - - -void -ServerApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -void -ServerApp::cleanup() -{ -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:n:t:r:c:k:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'p': - this->ior_filename_prefix_ = get_opts.opt_arg(); - break; - - case 's': - result = set_arg(this->num_servants_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 'n': - result = set_arg(this->num_csd_threads_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 't': - result = set_arg(this->num_orb_threads_, - get_opts.opt_arg(), - c, - "num_orb_threads", - 1); - break; - - case 'r': - result = set_arg(this->num_remote_clients_, - get_opts.opt_arg(), - c, - "num_remote_clients"); - break; - - case 'c': - result = set_arg(this->num_collocated_clients_, - get_opts.opt_arg(), - c, - "num_collocated_clients"); - break; - - case 'k': - result = set_arg(this->collocated_client_kind_, - get_opts.opt_arg(), - c, - "collocated_client_kind"); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-p <ior_filename_prefix>]\n" - "\t[-s <num_servants>]\n" - "\t[-n <num_csd_threads>]\n" - "\t[-t <num_orb_threads>]\n" - "\t[-r <num_remote_clients>]\n" - "\t[-c <num_collocated_clients>]\n" - "\t[-k <collocated_client_kind>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ServerApp::arg_dependency_checks() -{ - return (this->num_remote_clients_ - + this->num_collocated_clients_) > 0 ? 0 : -1; -} - - -int -ServerApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - return 0; -} - - -PortableServer::POA_ptr -ServerApp::create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -bool -ServerApp::check_validity () -{ - return true; -#if 0 - // Check whether the clients return any errors. - if (this->num_collocated_clients_ > 0 - && this->collocated_client_task_.failure_count () > 0) - { - return false; - } - - Foo_B_Statistics stats (this->num_remote_clients_, - this->num_collocated_clients_); - - Foo_B_SimpleClientEngine::expected_results (stats); - - for (unsigned i = 0; i < this->num_servants_; i++) - { - this->foo_servants_.servant(i)->gather_stats (stats); - } - - if (this->num_collocated_clients_ > 0) - { - this->cb_servants_.servant (0)->gather_stats (stats); - } - - return stats.actual_vs_expected (); -#endif -} - diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/ServerApp.h b/TAO/tests/CSD_Strategy_Tests/Broken/ServerApp.h deleted file mode 100644 index c90b7671534..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/ServerApp.h +++ /dev/null @@ -1,85 +0,0 @@ -// $Id$ -#ifndef SERVERAPP_H -#define SERVERAPP_H - -#include "TestAppBase.h" -#include "ServantList_T.h" -#include "ClientTask.h" -#include "Foo_B_i.h" -#include "Callback_i.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "ace/SString.h" - - -class ServerApp : public TestAppBase -{ - public: - - ServerApp(); - virtual ~ServerApp(); - - - protected: - - virtual int run_i(int argc, char* argv[] ACE_ENV_ARG_DECL); - - - private: - - // These are all called, in order, by the run_i() method. - int init(int argc, char* argv[] ACE_ENV_ARG_DECL); - void poa_setup(ACE_ENV_SINGLE_ARG_DECL); - void csd_setup(ACE_ENV_SINGLE_ARG_DECL); - void servant_setup(ACE_ENV_SINGLE_ARG_DECL); - void collocated_setup(ACE_ENV_SINGLE_ARG_DECL); - void poa_activate(ACE_ENV_SINGLE_ARG_DECL); - void run_collocated_clients(ACE_ENV_SINGLE_ARG_DECL); - void run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL); - bool check_validity (); - void cleanup(); - - - // Helper methods used by the methods above. - int parse_args(int argc, char* argv[]); - - int set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min = 0); - - void usage_statement(); - int arg_dependency_checks(); - - - PortableServer::POA_ptr create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL); - - typedef ServantList<Foo_B_i> FooServantListType; - typedef ServantList<Callback_i> CallbackServantListType; - - CORBA::ORB_var orb_; - PortableServer::POA_var poa_; - TAO::CSD::TP_Strategy_Handle tp_strategy_; - - PortableServer::POA_var cb_poa_; - TAO::CSD::TP_Strategy_Handle cb_tp_strategy_; - - FooServantListType foo_servants_; - CallbackServantListType cb_servants_; - - ClientTask collocated_client_task_; - - ACE_CString exe_name_; - - ACE_CString ior_filename_prefix_; - unsigned num_servants_; - unsigned num_csd_threads_; - unsigned num_orb_threads_; - unsigned num_remote_clients_; - unsigned num_collocated_clients_; - unsigned collocated_client_kind_; -}; - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/client_main.cpp b/TAO/tests/CSD_Strategy_Tests/Broken/client_main.cpp deleted file mode 100644 index 3814bef5ff9..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/client_main.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ -#include "ClientApp.h" -#include "TestAppMain.h" - -TEST_APP_MAIN(ClientApp) - - diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/run_test.pl b/TAO/tests/CSD_Strategy_Tests/Broken/run_test.pl deleted file mode 100755 index 3000ac7a43c..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/run_test.pl +++ /dev/null @@ -1,172 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -my $status = 0; - -my $iorfname_prefix = "servant"; -my $num_servants = 1; -my $num_orb_threads = 1; -my $num_remote_clients = 1; -my $num_csd_threads = 1; -my $num_collocated_clients = 0; -my $collocated_client_kind = 0; -my $client_kind = 0; - -my $i; -my $j; -my @iorfile; - -my $ARGC = @ARGV; - -if ($ARGC > 0) -{ - if ($ARGC > 1) - { - print STDERR "ERROR: Too many command-line arguments for $0.\n"; - exit 1; - } - - my $subtest = $ARGV[0]; - - if ($subtest eq 'remote') - { - $num_remote_clients = 40; - } - elsif ($subtest eq 'collocated') - { - $num_remote_clients = 0; - $num_collocated_clients = 1; - $num_csd_threads=1; - } - elsif ($subtest eq 'remote_orbthreads') - { - $num_orb_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_servants') - { - $num_servants = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_csdthreads') - { - $num_csd_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - } - elsif ($subtest eq 'big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'usage') - { - print STDOUT "Usage: $0 [<subtest>]\n" . - "\n" . - "Supported <subtest> values:\n" . - "\n" . - "\tremote\n" . - "\tcollocated\n" . - "\tremote_orbthreads\n" . - "\tremote_servants\n" . - "\tremote_csdthreads\n" . - "\tremote_big\n" . - "\tusage\n" . - "\n"; - exit 0; - } - else - { - print STDERR "ERROR: invalid subtest argument for $0: $subtest\n"; - exit 1; - } -} - -#Delete old ior files. -for ($i = 0; $i < $num_servants; $i++) { - my $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process("server_main", -# "-ORBNegotiateCodesets 0 " . - "-p $iorfname_prefix " . - "-s $num_servants " . - "-n $num_csd_threads " . - "-t $num_orb_threads " . - "-r $num_remote_clients " . - "-c $num_collocated_clients " . - "-k $collocated_client_kind"); - - -$SV->Spawn(); - -# Wait for the servant ior files created by server. -for ($i = 0; $i < $num_servants; $i++) { - if (PerlACE::waitforfile_timed - ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill(); - $SV->TimedWait(1); - exit 1; - } -} - -my $count = 0; - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client_id = $i + 1; - - $j = $i % $num_servants; - - $CLS[$i] = new PerlACE::Process("client_main", - "-i file://$iorfile[$j] ". - "-k $client_kind ". - "-n $client_id"); - $CLS[$i]->Spawn(); -} - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client = $CLS[$i]->WaitKill(60); - - if ($client != 0) - { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill(60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for ($i = 0; $i < $num_servants; $i++) { - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/tests/CSD_Strategy_Tests/Broken/server_main.cpp b/TAO/tests/CSD_Strategy_Tests/Broken/server_main.cpp deleted file mode 100644 index 82e987f6d41..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/Broken/server_main.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "TestAppMain.h" - -TEST_APP_MAIN(ServerApp) diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib.mpc b/TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib.mpc deleted file mode 100644 index c7f6e20a3f5..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Common/CSD_TP_Test_Lib.mpc +++ /dev/null @@ -1,39 +0,0 @@ -//$Id$ -project : taolib_with_idl, csd_threadpool { - sharedname = CSD_TP_Test - dynamicflags = CSD_TP_TEST_BUILD_DLL - idlflags += -Wb,export_macro=CSD_TP_Test_Export -Wb,export_include=CSD_TP_Test_Export.h - includes += $(TAO_ROOT)/tao - - IDL_Files { - FooException.idl - TestAppException.idl - CancelledException.idl - CustomException.idl - } - - Source_Files { - AppHelper.cpp - AppShutdown.cpp - ClientEngine.cpp - ClientTask.cpp - OrbRunner.cpp - OrbTask.cpp - TestAppBase.cpp - StatisticsHelper.cpp - OrbShutdownTask.cpp - FooExceptionC.cpp - FooExceptionS.cpp - TestAppExceptionC.cpp - TestAppExceptionS.cpp - CancelledExceptionC.cpp - CancelledExceptionS.cpp - CustomExceptionC.cpp - CustomExceptionS.cpp - } - - Template_Files { - ServantList_T.cpp - } - -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Common/ClientTask.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Common/ClientTask.cpp deleted file mode 100644 index 5ac8d25f408..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Common/ClientTask.cpp +++ /dev/null @@ -1,116 +0,0 @@ -// $Id$ -#include "ClientTask.h" -#include "ClientEngine.h" -#include "AppShutdown.h" -#include "ace/SString.h" - - -ClientTask::ClientTask(bool shutdown_after_done) -: shutdown_after_done_(shutdown_after_done), - failure_count_(0) -{ -} - - -ClientTask::~ClientTask() -{ -} - - -void -ClientTask::add_engine(ClientEngine* engine) -{ - // Pass in false so that _add_ref() is called. - ClientEngine_Handle engine_handle(engine,false); - this->engines_.push_back(engine_handle); -} - - -int -ClientTask::open(void*) -{ - unsigned num_threads = this->engines_.size(); - - if (num_threads == 0) - { - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) ClientTask cannot activate 0 threads.\n"), - -1); - } - - if (this->activate(THR_NEW_LWP | THR_JOINABLE, num_threads) != 0) - { - // Assumes that when activate returns non-zero return code that - // no threads were activated. - ACE_ERROR_RETURN((LM_ERROR, - "(%P|%t) ClientTask failed to activate " - "the %d client threads.\n", num_threads), - -1); - } - - return 0; -} - - -int -ClientTask::svc() -{ - ClientEngine_Handle engine; - - { - GuardType guard(this->lock_); - this->engines_.get(engine, this->engines_.size() - 1); - this->engines_.pop_back(); - } - - ACE_TRY_NEW_ENV - { - bool exec_ret = engine->execute(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - if (exec_ret == false) - { - GuardType guard(this->lock_); - this->failure_count_ ++; - } - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "ClientTask::svc Caught exception from execute():"); - - GuardType guard(this->lock_); - this->failure_count_ ++; - } - ACE_CATCHALL - { - ACE_ERROR((LM_ERROR, - "(%P|%t) ClientTask::svc caught unknown (...) exception "\ - "in execute() " )); - GuardType guard(this->lock_); - this->failure_count_ ++; - } - ACE_ENDTRY; - - if(this->shutdown_after_done_) - { - // This is used to shutdown orb for a client application - // with an orb running. - TheAppShutdown->client_done (); - } - - return 0; -} - - -int -ClientTask::close(u_long) -{ - return 0; -} - - -unsigned -ClientTask::failure_count () const -{ - return this->failure_count_; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h b/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h deleted file mode 100644 index 071b556b530..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_i.h +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ -#ifndef FOO_A_I_H -#define FOO_A_I_H - -#include "CSD_TP_Foo_A_Export.h" -#include "Foo_AS.h" -#include "Foo_A_Statistics.h" - - -class CSD_TP_Foo_A_Export Foo_A_i : public virtual POA_Foo_A, - public virtual PortableServer::ServantBase -{ - public: - - Foo_A_i(); - virtual ~Foo_A_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - void gather_stats (Foo_A_Statistics& stats) ; - - private: - - LongVector in_values_ [5]; - unsigned op_count_ [5]; -}; - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.cpp deleted file mode 100644 index d4158bf5324..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ -#include "Callback_i.h" - -Callback_i::Callback_i() - : num_callbacks_(0) -{ -} - - -Callback_i::~Callback_i () -{ -} - - -void -Callback_i::test_method(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->num_callbacks_ ++; -} - - -void -Callback_i::gather_stats(Foo_B_Statistics& stats) -{ - stats.actual_callbacks(this->num_callbacks_.value ()); -} - diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h deleted file mode 100644 index 833f11c8e78..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Callback_i.h +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ -#ifndef CALLBACK_I_H -#define CALLBACK_I_H - -#include "CSD_TP_Foo_B_Export.h" -#include "CallbackS.h" -#include "Foo_B_Statistics.h" - - -class CSD_TP_Foo_B_Export Callback_i - : public virtual POA_Callback, - public virtual PortableServer::ServantBase -{ - public: - - Callback_i(); - - virtual ~Callback_i(); - - virtual void test_method(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - void gather_stats(Foo_B_Statistics& stats); - - - private: - - ACE_Atomic_Op <ACE_SYNCH_MUTEX, unsigned> num_callbacks_; -}; - - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl deleted file mode 100644 index 2b6b7382fab..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B.idl +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ -#ifndef FOO_B_IDL -#define FOO_B_IDL - -#include "FooException.idl" -#include "Callback.idl" - - -typedef sequence<char, 32> Bounded_Var_Size; -typedef sequence<char> Unbounded_Var_Size; -typedef long Fixed_Array[20]; -typedef string Var_Array [3]; - -struct TimeOfDay { - short hour; // 0 - 23 - short minute; // 0 - 59 - short second; // 0 - 59 -}; -interface Foo_B -{ - /// void return-type, no arguments - void op1(); - - /// void return-type, 1 "in" argument - void op2(in long value); - - /// long return-type, 1 "in" argument - long op3(in long value); - - /// one-way version of op2 - oneway void op4(in long value); - - /// Operation that always raises an exception. - void op5() raises (FooException); - - /// Test fixed size "in" argument and the "inout" parameter. - boolean op6(in TimeOfDay t, - inout string message); - - /// Callback test. - - /// Pass the callback object and the server invoke operation on - /// the callback object reference. - void op7 (in Callback cb) raises (FooException); - - oneway void test_unbounded_string_arg(in string message); - - oneway void test_bounded_string_arg(in string<20> message); - - oneway void test_fixed_array_arg(in Fixed_Array message); - - oneway void test_var_array_arg(in Var_Array messages); - - oneway void test_bounded_var_size_arg(in Bounded_Var_Size message); - - oneway void test_unbounded_var_size_arg(in Unbounded_Var_Size message); - - oneway void test_fixed_size_arg (in TimeOfDay t); - - oneway void test_special_basic_arg(in boolean value, in long client_id); - - oneway void test_objref_arg (in Callback cb); - - /// Client calls this last. The last client to claim that it is - /// done will cause the server to shutdown. - void done(); -}; - - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp deleted file mode 100644 index 2769f5ad9cf..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_ClientEngine.cpp +++ /dev/null @@ -1,206 +0,0 @@ -// $Id$ -#include "Foo_B_ClientEngine.h" -#include "Callback_i.h" -#include "Foo_B_Statistics.h" -#include "TestAppExceptionC.h" -#include "AppHelper.h" -#include "ace/Log_Msg.h" -#include "ace/OS.h" - -const char* ONEWAY_ARG_TEST_STR = "TEST"; - -Foo_B_ClientEngine::Foo_B_ClientEngine(Foo_B_ptr obj, - Callback_ptr callback, - unsigned client_id, - bool collocated) - : obj_(Foo_B::_duplicate(obj)), - callback_(Callback::_duplicate(callback)), - client_id_(client_id), - collocated_(collocated) -{ -} - - -Foo_B_ClientEngine::~Foo_B_ClientEngine() -{ -} - - -bool -Foo_B_ClientEngine::execute(ACE_ENV_SINGLE_ARG_DECL) -{ - // Make sure the connection is established before making - // remote invocations. - if (AppHelper::validate_connection (this->obj_.in ()) == false) - { - ACE_ERROR((LM_ERROR, "(%P|%t)Foo_A_ClientEngine::execute " \ - "client %d connect failed.\n", this->client_id_)); - return false; - } - - // Verify the return values and return the results. - bool check_validity = true; - - this->obj_->op1(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - this->obj_->op2(this->client_id_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - CORBA::Long value = this->obj_->op3(this->client_id_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - if (value != static_cast<CORBA::Long>(this->client_id_)) - { - check_validity = false; - } - - for (CORBA::ULong j = 1; j <= 5; j++) - { - this->obj_->op4(495 + (this->client_id_ * 5) + j ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - } - - bool caught_exception = false; - - ACE_TRY - { - this->obj_->op5(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (FooException, ex) - { - // Expected - caught_exception = true; - } - ACE_ENDTRY; - - if (! caught_exception) - { - check_validity = false; - } - - TimeOfDay t; - t.hour = 12; - t.minute = 30; - t.second = 10; - - char test_str [20]; - ACE_OS::sprintf (test_str, "%d %s", this->client_id_, ONEWAY_ARG_TEST_STR); - - char buffer [20]; - - // Two-Way calls with "inout" and fixed size "in" arguments. - CORBA::String_var message = CORBA::string_dup(test_str); - - CORBA::Boolean result = this->obj_->op6( t, message.inout() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - ACE_UNUSED_ARG(result); - - ACE_OS::sprintf (buffer, "%d %s %d:%d:%d", this->client_id_, ONEWAY_ARG_TEST_STR, - t.hour, t.minute, t.second); - - if (ACE_OS::strncmp (message.in (), buffer, ACE_OS::strlen (buffer)) != 0) - { - check_validity = false; - } - - // Callback test. - this->obj_->op7 (this->callback_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - // One-Way calls with various arguments. - CORBA::String_var ub_string = CORBA::string_dup( test_str ); - this->obj_->test_unbounded_string_arg (ub_string.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - CORBA::String_var bd_string = CORBA::string_dup( test_str ); - this->obj_->test_bounded_string_arg (bd_string.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - Fixed_Array fixed_array; - - for (CORBA::ULong m = 0 ; m < 20; m ++) - { - fixed_array[m] = this->client_id_ + m; - } - - this->obj_->test_fixed_array_arg (fixed_array ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - Var_Array var_array; - - for (CORBA::ULong k = 0; k < 3; k++) - { - ACE_OS::sprintf (buffer, "%d %s %d", - this->client_id_, ONEWAY_ARG_TEST_STR, k); - var_array[k] = CORBA::string_dup(buffer); - } - - this->obj_->test_var_array_arg (var_array ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - Bounded_Var_Size_var bd_var_size_string = new Bounded_Var_Size(); - - bd_var_size_string->replace (bd_var_size_string->maximum (), - ACE_OS::strlen (test_str) + 1, - test_str); - this->obj_->test_bounded_var_size_arg (bd_var_size_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - Unbounded_Var_Size_var ub_var_size_string = new Unbounded_Var_Size(100); - ub_var_size_string->replace (ub_var_size_string->maximum (), - ACE_OS::strlen (test_str) + 1, - test_str); - this->obj_->test_unbounded_var_size_arg (ub_var_size_string.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - this->obj_->test_fixed_size_arg (t ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - this->obj_->test_special_basic_arg (this->client_id_ % 2, - this->client_id_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - this->obj_->test_objref_arg (this->callback_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - this->obj_->done(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - return check_validity; -} - - -void -Foo_B_ClientEngine::expected_results(Foo_B_Statistics& stats) -{ - stats.expected(1, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected(2, 1, Foo_B_Statistics::FOO_B_STAT_LONG); - stats.expected(3, 1, Foo_B_Statistics::FOO_B_STAT_LONG); - stats.expected(4, 5, Foo_B_Statistics::FOO_B_STAT_LONG); - stats.expected(5, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected(6, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected(7, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected(8, 1, Foo_B_Statistics::FOO_B_STAT_STRING); - stats.expected(9, 1, Foo_B_Statistics::FOO_B_STAT_STRING); - stats.expected(10, 1, Foo_B_Statistics::FOO_B_STAT_LONG); - stats.expected(11, 1, Foo_B_Statistics::FOO_B_STAT_STRING); - stats.expected(12, 1, Foo_B_Statistics::FOO_B_STAT_STRING); - stats.expected(13, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected(14, 1, Foo_B_Statistics::FOO_B_STAT_STRING); - stats.expected(15, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected(16, 1, Foo_B_Statistics::FOO_B_STAT_NONE); - stats.expected_callbacks (1); -} - - -unsigned -Foo_B_ClientEngine::expected_callbacks () -{ - return 1; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp deleted file mode 100644 index d282c058b8e..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_Statistics.cpp +++ /dev/null @@ -1,187 +0,0 @@ -// $Id$ -#include "Foo_B_Statistics.h" -#include "Foo_B_ClientEngine.h" - -extern const char* ONEWAY_ARG_TEST_STR; -extern CORBA::Boolean special_value; - -Foo_B_Statistics::Foo_B_Statistics(unsigned num_remote_clients, - unsigned num_collcated_clients) -: num_clients_ (num_remote_clients + num_collcated_clients), - num_collcated_clients_ (num_collcated_clients), - expected_callbacks_ (0), - actual_callbacks_ (0), - servant_error_count_ (0) -{ - for (unsigned i = 0; i < 16; i++) - { - this->expected_op_count_[i] = 0; - this->actual_op_count_[i] = 0; - } -} - - -Foo_B_Statistics::~Foo_B_Statistics() -{ -} - - -void -Foo_B_Statistics::expected(unsigned op_num, unsigned count, In_Value_Type type) -{ - this->expected_op_count_[op_num-1] = count * this->num_clients_; - this->expected_in_value_type_[op_num-1] = type; -} - - -void -Foo_B_Statistics::actual(unsigned op_num, unsigned count) -{ - this->actual_op_count_[op_num-1] += count; -} - - -void -Foo_B_Statistics::actual(unsigned op_num, LongVector lv) -{ - unsigned sz = lv.size(); - for (unsigned i = 0; i < sz; i++) - { - this->actual_in_long_[op_num-1].push_back (lv[i]); - } -} - - -void -Foo_B_Statistics::actual(unsigned op_num, StringVector sv) -{ - unsigned sz = sv.size(); - for (unsigned i = 0; i < sz; i++) - { - this->actual_in_string_[op_num-1].push_back (sv[i]); - } -} - - -void -Foo_B_Statistics::expected_callbacks (unsigned num_cbs) -{ - expected_callbacks_ = num_cbs * this->num_collcated_clients_; -} - - -void -Foo_B_Statistics::actual_callbacks (unsigned num_cbs) -{ - actual_callbacks_ += num_cbs; -} - - -void -Foo_B_Statistics::servant_error_count (unsigned error_count) -{ - this->servant_error_count_ += error_count; -} - - -bool -Foo_B_Statistics::actual_vs_expected() -{ - // Verify the checking results in servant operation code. - if (this->servant_error_count_ > 0) - { - return false; - } - - // Verify the number of callbacks received for the collocated - // client. - if (actual_callbacks_ != expected_callbacks_) - { - return false; - } - - // Verify the number of operations server received. - for (unsigned int z = 0; z < 16; z++) - { - if (this->expected_op_count_[z] != this->actual_op_count_[z]) - { - return false; - } - } - - Foo_B_Statistics stats (1, 0); - Foo_B_ClientEngine::expected_results (stats); - - for (unsigned i = 0; i < 16; i++) - { - switch (expected_in_value_type_[i]) - { - case FOO_B_STAT_LONG: - { - unsigned actual_size - = this->actual_in_long_[i].size (); - unsigned expected_size - = this->num_clients_ * stats.expected_op_count_[i]; - if (actual_size != expected_size) - { - return false; - } - sort (this->actual_in_long_[i]); - - for (unsigned j = 0; j < actual_size - 1; j++) - { - if (this->actual_in_long_[i][j] != this->actual_in_long_[i][j + 1] - 1) - { - return false; - } - } - } - break; - - case FOO_B_STAT_STRING: - { - unsigned actual_size - = this->actual_in_string_[i].size (); - unsigned expected_size - = this->num_clients_ * stats.expected_op_count_[i]; - if (actual_size != expected_size) - { - return false; - } - - LongVector lvec; - char buffer[50]; - - for (unsigned k = 0; k < actual_size; k++) - { - unsigned client_id; - sscanf (this->actual_in_string_[i][k].c_str(), "%d %s", &client_id, buffer); - if (ACE_OS::strcmp (buffer, ONEWAY_ARG_TEST_STR) != 0) - { - return false; - } - lvec.push_back (client_id); - } - - sort (lvec); - - for (unsigned j = 0; j < actual_size - 1; j++) - { - if (lvec[j] != lvec[j + 1] - 1) - { - return false; - } - } - } - break; - - case FOO_B_STAT_NONE: - default: - break; - } - - } - - return true; -} - diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp deleted file mode 100644 index 73105ff1713..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.cpp +++ /dev/null @@ -1,283 +0,0 @@ -// $Id$ -#include "Foo_B_i.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "ace/OS.h" -#include "ace/SString.h" - - -Foo_B_i::Foo_B_i() -: error_count_ (0) -{ - for (unsigned i = 0; i < 16; i++) - { - op_count_[i] = 0; - } -} - - -Foo_B_i::~Foo_B_i() -{ -} - - -void -Foo_B_i::op1(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[0] ++; -} - - -void -Foo_B_i::op2(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[1] ++; - this->in_long_[1].push_back (value); -} - - -CORBA::Long -Foo_B_i::op3(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[2] ++; - this->in_long_[2].push_back (value); - return value; -} - - -void -Foo_B_i::op4(CORBA::Long value ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[3] ++; - this->in_long_[3].push_back (value); -} - - -void -Foo_B_i::op5(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException, FooException)) -{ - this->op_count_[4] ++; - ACE_THROW (FooException()); -} - - -CORBA::Boolean -Foo_B_i::op6(const TimeOfDay& t, - char*& message - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[5] ++; - char buf [20]; - ACE_OS::sprintf (buf, "%s %d:%d:%d", message, t.hour, t.minute, t.second); - message = CORBA::string_dup (buf); - - return 1; -} - - -void -Foo_B_i::op7(Callback_ptr cb - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException, - FooException)) -{ - this->op_count_[6] ++; - - if (CORBA::is_nil (cb)) - { - error_count_ ++; - ACE_THROW (FooException ()); - } - else - { - cb->test_method (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } -} - - -void -Foo_B_i::test_unbounded_string_arg(const char* message - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[7] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_unbounded_string_arg ") - // ACE_TEXT("got unbounded string %s\n"), - // message)); - this->in_string_[7].push_back (message); -} - - -void -Foo_B_i::test_bounded_string_arg(const char* message - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[8] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_bounded_string_arg ") - // ACE_TEXT("got bounded string %s\n"), - // message)); - this->in_string_[8].push_back (message); -} - - -void -Foo_B_i::test_fixed_array_arg(const Fixed_Array message - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[9] ++; - - for (unsigned i = 0; i < 19; i++) - { - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_fixed_array_arg ") - // ACE_TEXT("got fixed array[i] = %d\n"), - // i, message[i])); - - if (message[i] != message[i + 1] -1) - { - error_count_ ++; - break; - } - } - - - this->in_long_[9].push_back (message[0]); -} - - -void -Foo_B_i::test_bounded_var_size_arg(const Bounded_Var_Size& message - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[10] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_bounded_var_size_arg ") - // ACE_TEXT("got var array chars %s\n"), - // message.get_buffer ())); - this->in_string_[10].push_back (message.get_buffer ()); -} - - -void -Foo_B_i::test_unbounded_var_size_arg(const Unbounded_Var_Size& message - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[11] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_unbounded_var_size_arg ") - // ACE_TEXT("got var array chars %s\n"), - // message.get_buffer ())); - this->in_string_[11].push_back (message.get_buffer ()); -} - - -void -Foo_B_i::test_fixed_size_arg(const TimeOfDay& t - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_UNUSED_ARG(t); - - this->op_count_[12] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_fixed_size_arg ") - // ACE_TEXT("got timeofday %d:%d:%d\n"), - // t.hour, t.minute, t.second)); -} - - -void -Foo_B_i::test_var_array_arg(const Var_Array messages - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[13] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_var_array_arg ") - // ACE_TEXT(" %s \n"), messages[0].in ())); - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_var_array_arg ") - // ACE_TEXT(" %s \n"), messages[1].in ())); - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_var_array_arg ") - // ACE_TEXT(" %s \n"), messages[2].in ())); - unsigned cur_client_id = 0; - - for (unsigned i = 0 ; i < 3; i ++) - { - unsigned client_id = 0; - unsigned str_id = 0; - char test_str[20]; - sscanf (messages[i].in (), "%d %s %d", &client_id, test_str, &str_id); - - if (str_id != i) - { - error_count_ ++; - } - - if (i == 0) - { - cur_client_id = client_id; - } - else if (client_id != cur_client_id) - { - error_count_ ++; - } - } - this->in_string_[13].push_back (messages[0].in ()); -} - - -void -Foo_B_i::test_special_basic_arg(CORBA::Boolean value, - CORBA::Long client_id - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - this->op_count_[14] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_special_basic_arg ") - // ACE_TEXT(" got special basic arg: %d \n"), value)); - - CORBA::Boolean expected_special_value = client_id % 2; - if (expected_special_value != value) - { - error_count_ ++; - } -} - - -void -Foo_B_i::test_objref_arg(Callback_ptr cb - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_UNUSED_ARG(cb); - this->op_count_[15] ++; - //ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t)Foo_B_i::test_objref_arg ") - // ACE_TEXT(" got callback object. \n"))); -} - - -void -Foo_B_i::done(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)) -{ - TheAppShutdown->client_done(); -} - - -void -Foo_B_i::gather_stats (Foo_B_Statistics& stats) -{ - for (unsigned i = 0; i < 16; i++) - { - stats.actual (i+1, this->op_count_[i]); - stats.actual (i+1, this->in_string_[i]); - stats.actual (i+1, this->in_long_[i]); - stats.servant_error_count (this->error_count_); - } -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h b/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h deleted file mode 100644 index 860540807d6..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_B/Foo_B_i.h +++ /dev/null @@ -1,93 +0,0 @@ -// $Id$ -#ifndef FOO_B_I_H -#define FOO_B_I_H - -#include "CSD_TP_Foo_B_Export.h" -#include "Foo_BS.h" -#include "Foo_B_Statistics.h" - - -class CSD_TP_Foo_B_Export Foo_B_i : public virtual POA_Foo_B, - public virtual PortableServer::ServantBase -{ - public: - - Foo_B_i(); - virtual ~Foo_B_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, FooException)); - - virtual CORBA::Boolean op6(const TimeOfDay& t, - char*& message - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op7(Callback_ptr cb - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, - FooException)); - - virtual void test_unbounded_string_arg(const char* message - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_bounded_string_arg(const char* message - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_fixed_array_arg(const Fixed_Array message - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_var_array_arg(const Var_Array messages - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_bounded_var_size_arg(const Bounded_Var_Size& message - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_unbounded_var_size_arg(const Unbounded_Var_Size& message - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_fixed_size_arg(const TimeOfDay& t - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_special_basic_arg(CORBA::Boolean value, - CORBA::Long client_id - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void test_objref_arg(Callback_ptr cb - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - void gather_stats (Foo_B_Statistics& stats); - - private: - - LongVector in_long_ [16]; - StringVector in_string_ [16]; - unsigned op_count_ [16]; - unsigned error_count_; -}; - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.h b/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.h deleted file mode 100644 index d797927c042..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_Custom_ClientEngine.h +++ /dev/null @@ -1,42 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -//============================================================================= -/** - * @file Foo_C_ClientEngine.h - * - * $Id$ - * - * @author Tim Bradley <bradley_t@ociweb.com> - */ -//============================================================================= - -#ifndef FOO_C_CUSTOM_CLIENT_ENGINE_H -#define FOO_C_CUSTOM_CLIENT_ENGINE_H - -#include "CSD_TP_Foo_C_Export.h" -#include "ClientEngine.h" -#include "Foo_C_Custom_Proxy.h" - - -class CSD_TP_Foo_C_Export Foo_C_Custom_ClientEngine : public ClientEngine -{ - public: - - Foo_C_Custom_ClientEngine(Foo_C_i* servant, - Foo_C_ptr objref, - TAO::CSD::TP_Strategy* strategy, - unsigned client_id); - virtual ~Foo_C_Custom_ClientEngine(); - - virtual bool execute(ACE_ENV_SINGLE_ARG_DECL); - - static void expected_results(Foo_C_Statistics& stats); - - - private: - - Foo_C_Custom_Proxy proxy_; - unsigned client_id_; -}; - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h b/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h deleted file mode 100644 index 30d211cca85..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_i.h +++ /dev/null @@ -1,54 +0,0 @@ -// $Id$ -#ifndef FOO_C_I_H -#define FOO_C_I_H - -#include "CSD_TP_Foo_C_Export.h" -#include "Foo_CS.h" -#include "Foo_C_Statistics.h" - - -class CSD_TP_Foo_C_Export Foo_C_i : public virtual POA_Foo_C, - public virtual PortableServer::ServantBase -{ - public: - - Foo_C_i(); - virtual ~Foo_C_i(); - - virtual void op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op2(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual CORBA::Long op3(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op4(CORBA::Long value ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException, - FooException)); - - virtual void done(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC((CORBA::SystemException)); - - void cust_op1(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); - void cust_op2(long value ACE_ENV_ARG_DECL_WITH_DEFAULTS); - long cust_op3(long value ACE_ENV_ARG_DECL_WITH_DEFAULTS); - void cust_op4(long value ACE_ENV_ARG_DECL_WITH_DEFAULTS); - void cust_op5(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); - - void gather_stats(Foo_C_Statistics& stats); - - void dump(); - - - private: - - LongVector in_values_ [10]; - unsigned count_[10]; -}; - -#endif diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp deleted file mode 100644 index a386c21d049..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_1/ServerApp.cpp +++ /dev/null @@ -1,188 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "Foo_A_i.h" -#include "AppHelper.h" -#include "TestAppExceptionC.h" -#include "AppShutdown.h" -#include "ace/Get_Opt.h" -#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h" -#include "tao/Intrusive_Ref_Count_Handle_T.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - -ServerApp::ServerApp() - : TestAppBase("TP_Test_1_Server"), - num_clients_ (1) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - // Initialize the ORB before parsing our own args. - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Returns -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheAppShutdown->init(orb.in(), num_clients_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Get the Root POA - PortableServer::POA_var root_poa = - RefHelper<PortableServer::POA>::resolve_initial_ref(orb.in(), - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var child_poa = - AppHelper::create_poa("ChildPoa", - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - - // Create the thread pool servant dispatching strategy object, and - // hold it in a (local) smart pointer variable. - TAO_Intrusive_Ref_Count_Handle<TAO::CSD::TP_Strategy> csd_strategy = - new TAO::CSD::TP_Strategy(); - - // Tell the strategy to apply itself to the child poa. - if (csd_strategy->apply_to(child_poa.in() ACE_ENV_ARG_PARAMETER) == false) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to child poa.\n")); - return -1; - } - ACE_CHECK_RETURN (-1); - - // Create the servant object. - Foo_A_i* servant = new Foo_A_i(); - - // Local smart pointer variable to deal with releasing the reference - // to the servant object when the variable falls out of scope. - PortableServer::ServantBase_var servant_owner(servant); - - // Obtain the object reference using the servant - CORBA::Object_var obj = AppHelper::activate_servant(child_poa.in(), - servant - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Stringify and save the object reference to a file - AppHelper::ref_to_file(orb.in(), - obj.in(), - this->ior_filename_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready. Running the ORB event loop.\n")); - - // Run the ORB event loop. - orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp ORB event loop has completed.\n")); - - TheAppShutdown->wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - ACE_Get_Opt get_opts(argc, argv, "o:n:"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'o': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 'n': - { - int tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -n must be followed by an integer " - "value greater than 0.\n")); - return -1; - } - - this->num_clients_ = tmp; - } - break; - - case '?': - ACE_ERROR((LM_ERROR, - "(%P|%t) usage: %s -o <ior_filename> -n <num_clients>\n", - argv[0])); - return 1; - - default: - ACE_ERROR((LM_ERROR, - "(%P|%t) usage: %s -o <ior_filename> -n <num_clients>\n", - argv[0])); - return -1; - } - } - - return 0; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl deleted file mode 100755 index e15decb6a63..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_1/run_test.pl +++ /dev/null @@ -1,55 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$iorfile = PerlACE::LocalFile ("server.ior"); -unlink $iorfile; -$status = 0; - -$num_clients=40; - -$SV = new PerlACE::Process ("server_main", "-o $iorfile -n $num_clients"); - -$SV->Spawn (); - -if (PerlACE::waitforfile_timed ($iorfile, - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; -} - -for ($i = 0; $i < $num_clients; $i++) { - - @CLS[$i] = new PerlACE::Process ("client_main", " -i file://$iorfile"); - - @CLS[$i]->Spawn (); -} - -for ($i = 0; $i < $num_clients; $i++) { - - $client = @CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -unlink $iorfile; - -exit $status; diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp deleted file mode 100644 index 8219f7bf2f1..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_2/ServerApp.cpp +++ /dev/null @@ -1,368 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "AppHelper.h" -#include "OrbRunner.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "Foo_A_ClientEngine.h" -#include "ace/OS.h" -#include "ace/Get_Opt.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - -ServerApp::ServerApp() - : TestAppBase("TP_Test_2_Server"), - ior_filename_prefix_("foo"), - num_servants_(1), - num_csd_threads_(1), - num_orb_threads_(1), - num_remote_clients_(1), - num_collocated_clients_(0), - collocated_client_kind_(0) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - if (result != 0) - { - return result; - } - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->servant_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->collocated_setup(); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_collocated_clients(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - this->cleanup(); - return this->check_validity () ? 0 : -1; -} - - -int -ServerApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - - if (result != 0) - { - return result; - } - - unsigned num_clients = this->num_remote_clients_ + - this->num_collocated_clients_; - - TheAppShutdown->init (this->orb_.in (), num_clients ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ServerApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; -} - - -void -ServerApp::servant_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->servants_.create_and_activate(this->num_servants_, - this->orb_.in (), - this->poa_.in (), - this->ior_filename_prefix_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::collocated_setup() -{ - int client_id_start = this->num_remote_clients_; - for (unsigned i = 0; i < this->num_collocated_clients_; i++) - { - // Dole out the servant object references in a round-robin fashion. - unsigned servant_index = i % this->num_servants_; - - ServantListType::T_stub_var obj = this->servants_.objref(servant_index); - ClientEngine_Handle engine = new Foo_A_ClientEngine(obj.in(), ++client_id_start, true); - this->collocated_client_task_.add_engine(engine.in()); - } -} - - -void -ServerApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::run_collocated_clients(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ > 0) - { - if (this->collocated_client_task_.open() == -1) - { - ACE_THROW (TestAppException ()); - } - } -} - - -void -ServerApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -void -ServerApp::cleanup() -{ -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:n:t:r:c:k:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'p': - this->ior_filename_prefix_ = get_opts.opt_arg(); - break; - - case 's': - result = this->set_arg(this->num_servants_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 'n': - result = this->set_arg(this->num_csd_threads_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 't': - result = this->set_arg(this->num_orb_threads_, - get_opts.opt_arg(), - c, - "num_orb_threads", - 1); - break; - - case 'r': - result = this->set_arg(this->num_remote_clients_, - get_opts.opt_arg(), - c, - "num_remote_clients"); - break; - - case 'c': - result = this->set_arg(this->num_collocated_clients_, - get_opts.opt_arg(), - c, - "num_collocated_clients"); - break; - - case 'k': - result = this->set_arg(this->collocated_client_kind_, - get_opts.opt_arg(), - c, - "collocated_client_kind"); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-p <ior_filename_prefix>]\n" - "\t[-s <num_servants>]\n" - "\t[-n <num_csd_threads>]\n" - "\t[-t <num_orb_threads>]\n" - "\t[-r <num_remote_clients>]\n" - "\t[-c <num_collocated_clients>]\n" - "\t[-k <collocated_client_kind>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ServerApp::arg_dependency_checks() -{ - return (this->num_remote_clients_ - + this->num_collocated_clients_) > 0 ? 0 : -1; -} - - -int -ServerApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - return 0; -} - - -PortableServer::POA_ptr -ServerApp::create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -bool -ServerApp::check_validity () -{ - // Check whether the clients return any errors. - if (this->num_collocated_clients_ > 0 - && this->collocated_client_task_.failure_count () > 0) - { - return false; - } - - unsigned num_clients = this->num_remote_clients_ + - this->num_collocated_clients_; - - Foo_A_Statistics stats (num_clients); - - Foo_A_ClientEngine::expected_results (stats); - - for (unsigned i = 0; i < this->num_servants_; i++) - { - this->servants_.servant(i)->gather_stats(stats); - } - - return stats.actual_vs_expected (); -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl deleted file mode 100755 index a0daa50592b..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_2/run_test.pl +++ /dev/null @@ -1,173 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -my $status = 0; - -my $iorfname_prefix = "servant"; -my $num_servants = 1; -my $num_orb_threads = 1; -my $num_remote_clients = 1; -my $num_csd_threads = 1; -my $num_collocated_clients = 0; -my $collocated_client_kind = 0; -my $client_kind = 0; - -my $i; -my $j; -my @iorfile; - -my $ARGC = @ARGV; - -if ($ARGC > 0) -{ - if ($ARGC > 1) - { - print STDERR "ERROR: Too many command-line arguments for $0.\n"; - exit 1; - } - - my $subtest = $ARGV[0]; - - if ($subtest eq 'remote') - { - $num_remote_clients = 40; - } - elsif ($subtest eq 'collocated') - { - $num_remote_clients = 0; - $num_collocated_clients = 1; - } - elsif ($subtest eq 'remote_orbthreads') - { - $num_orb_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_servants') - { - $num_servants = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_csdthreads') - { - $num_csd_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - } - elsif ($subtest eq 'big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'usage') - { - print STDOUT "Usage: $0 [<subtest>]\n" . - "\n" . - "Supported <subtest> values:\n" . - "\n" . - "\tremote\n" . - "\tcollocated\n" . - "\tremote_orbthreads\n" . - "\tremote_servants\n" . - "\tremote_csdthreads\n" . - "\tremote_big\n" . - "\tusage\n" . - "\n"; - exit 0; - } - else - { - print STDERR "ERROR: invalid subtest argument for $0: $subtest\n"; - exit 1; - } -} - -#Delete old ior files. -for ($i = 0; $i < $num_servants; $i++) { - my $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process("server_main", - "-p $iorfname_prefix " . - "-s $num_servants " . - "-n $num_csd_threads " . - "-t $num_orb_threads " . - "-r $num_remote_clients " . - "-c $num_collocated_clients " . - "-k $collocated_client_kind"); - -$SV->Spawn(); - - -# Wait for the servant ior files created by server. -for ($i = 0; $i < $num_servants; $i++) { - if (PerlACE::waitforfile_timed - ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill(); - $SV->TimedWait(1); - exit 1; - } -} - - -my $count = 0; - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - - $client_id = $i+1; - - $j = $i % $num_servants; - - $CLS[$i] = new PerlACE::Process("client_main", - "-i file://$iorfile[$j] ". - "-k $client_kind ". - "-n $client_id"); - - $CLS[$i]->Spawn(); -} - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client = $CLS[$i]->WaitKill(60); - - if ($client != 0) - { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill(60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for ($i = 0; $i < $num_servants; $i++) { - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp deleted file mode 100644 index 85ddc34bb47..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_3/ClientApp.cpp +++ /dev/null @@ -1,318 +0,0 @@ -// $Id$ -#include "ClientApp.h" -#include "AppHelper.h" -#include "OrbRunner.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "Foo_B_ClientEngine.h" -#include "ace/Get_Opt.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - -ClientApp::ClientApp() -: TestAppBase("TP_Test_3_Client"), - client_task_ (true), // shutdown orb after client is done. - num_servants_ (1), - num_csd_threads_ (1), - num_orb_threads_ (1), - ior_("Not Set"), - client_kind_(0), - client_id_(0) -{ -} - - -ClientApp::~ClientApp() -{ -} - - -int -ClientApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - if (result != 0) - { - return result; - } - ACE_CHECK_RETURN (-1); - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->client_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_clients(); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - result = this->check_validity () ? 0 : -1; - this->cleanup(); - - return result; -} - - -int -ClientApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheAppShutdown->init(this->orb_.in(), num_servants_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ClientApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ClientApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; -} - - -void -ClientApp::client_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - // Turn the ior_ into a Foo_B obj ref. - Foo_B_var foo = RefHelper<Foo_B>::string_to_ref(this->orb_.in(), - this->ior_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->servants_.create_and_activate(1, // number of callback servants - this->poa_.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - ServantListType::T_stub_var cb = this->servants_.objref(0); - - // Create the ClientEngine object, and give it the Foo_B and Callback object - // references. - ClientEngine_Handle engine - = new Foo_B_ClientEngine(foo.in(), cb.in (), this->client_id_); - this->client_task_.add_engine(engine.in()); -} - - -void -ClientApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ClientApp::run_clients() -{ - this->client_task_.open(); -} - - -void -ClientApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -PortableServer::POA_ptr -ClientApp::create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -void -ClientApp::cleanup() -{ -} - - -int -ClientApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "i:k:n:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'i': - this->ior_ = get_opts.opt_arg(); - break; - - case 'k': - result = set_arg(this->client_kind_, - get_opts.opt_arg(), - c, - "client_kind"); - break; - - case 'n': - result = set_arg(this->client_id_, - get_opts.opt_arg(), - c, - "client_id"); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ClientApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-i <ior>]\n" - "\t[-k <client_kind>]\n" - "\t[-n <client_id>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ClientApp::arg_dependency_checks() -{ - if (this->ior_ == "Not Set") - { - ACE_ERROR((LM_ERROR, - "Error: Missing required command-line option (-i <ior>).\n")); - this->usage_statement(); - return -1; - } - if (this->client_id_ <= 0) - { - ACE_ERROR((LM_ERROR, - "Error: Invalid command-line option (-n <client id>). \n" - " The client id should be positive integer. \n")); - this->usage_statement(); - return -1; - } - - return 0; -} - - -int -ClientApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - return 0; -} - - -bool -ClientApp::check_validity () -{ - // Check whether the clients return any errors. - if (this->client_task_.failure_count () > 0) - { - return false; - } - - return true; -} - diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp deleted file mode 100644 index 3366a6abd73..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_3/ServerApp.cpp +++ /dev/null @@ -1,408 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "AppHelper.h" -#include "OrbRunner.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "Foo_B_ClientEngine.h" -#include "Foo_B_ClientEngine.h" -#include "Callback_i.h" -#include "ace/OS.h" -#include "ace/Get_Opt.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - -ServerApp::ServerApp() - : TestAppBase("TP_Test_3_Server"), - ior_filename_prefix_("foo"), - num_servants_(1), - num_csd_threads_(1), - num_orb_threads_(1), - num_remote_clients_(1), - num_collocated_clients_(0), - collocated_client_kind_(0) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - if (result != 0) - { - return result; - } - ACE_CHECK_RETURN (-1); - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->servant_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->collocated_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_collocated_clients(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->cleanup(); - return this->check_validity () ? 0 : -1; -} - - -int -ServerApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - unsigned num_clients = this->num_remote_clients_ + - this->num_collocated_clients_; - - TheAppShutdown->init(this->orb_.in(), num_clients ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ServerApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (this->num_collocated_clients_ > 0) - { - this->cb_poa_ = this->create_poa(this->orb_.in(), - "CallbackPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -void -ServerApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; - - // Use another poa and strategy for callbacks. This would resolve - // the deadlock situation that happens when having number of csd - // threads less than number of collocated clients. - if (this->num_collocated_clients_ > 0) - { - this->cb_tp_strategy_ = new TAO::CSD::TP_Strategy(); - if (!this->cb_tp_strategy_->apply_to(this->cb_poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to callback poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; - } -} - - -void -ServerApp::servant_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->foo_servants_.create_and_activate(this->num_servants_, - this->orb_.in (), - this->poa_.in (), - this->ior_filename_prefix_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::collocated_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ == 0) - return; - - this->cb_servants_.create_and_activate(1, // number of callback servants - this->cb_poa_.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CallbackServantListType::T_stub_var cb = this->cb_servants_.objref(0); - - unsigned client_id = this->num_remote_clients_; - - for (unsigned i = 0; i < this->num_collocated_clients_; i++) - { - client_id ++; - // Dole out the servant object references in a round-robin fashion. - unsigned servant_index = i % this->num_servants_; - - FooServantListType::T_stub_var foo - = this->foo_servants_.objref(servant_index); - ClientEngine_Handle engine - = new Foo_B_ClientEngine(foo.in(), cb.in (), client_id, true); - this->collocated_client_task_.add_engine(engine.in()); - } -} - - -void -ServerApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::run_collocated_clients(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ > 0) - { - if (this->collocated_client_task_.open() == -1) - { - ACE_THROW (TestAppException ()); - } - } -} - - -void -ServerApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -void -ServerApp::cleanup() -{ -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:n:t:r:c:k:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'p': - this->ior_filename_prefix_ = get_opts.opt_arg(); - break; - - case 's': - result = set_arg(this->num_servants_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 'n': - result = set_arg(this->num_csd_threads_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 't': - result = set_arg(this->num_orb_threads_, - get_opts.opt_arg(), - c, - "num_orb_threads", - 1); - break; - - case 'r': - result = set_arg(this->num_remote_clients_, - get_opts.opt_arg(), - c, - "num_remote_clients"); - break; - - case 'c': - result = set_arg(this->num_collocated_clients_, - get_opts.opt_arg(), - c, - "num_collocated_clients"); - break; - - case 'k': - result = set_arg(this->collocated_client_kind_, - get_opts.opt_arg(), - c, - "collocated_client_kind"); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-p <ior_filename_prefix>]\n" - "\t[-s <num_servants>]\n" - "\t[-n <num_csd_threads>]\n" - "\t[-t <num_orb_threads>]\n" - "\t[-r <num_remote_clients>]\n" - "\t[-c <num_collocated_clients>]\n" - "\t[-k <collocated_client_kind>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ServerApp::arg_dependency_checks() -{ - return (this->num_remote_clients_ - + this->num_collocated_clients_) > 0 ? 0 : -1; -} - - -int -ServerApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - return 0; -} - - -PortableServer::POA_ptr -ServerApp::create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -bool -ServerApp::check_validity () -{ - // Check whether the clients return any errors. - if (this->num_collocated_clients_ > 0 - && this->collocated_client_task_.failure_count () > 0) - { - return false; - } - - Foo_B_Statistics stats (this->num_remote_clients_, - this->num_collocated_clients_); - - Foo_B_ClientEngine::expected_results (stats); - - for (unsigned i = 0; i < this->num_servants_; i++) - { - this->foo_servants_.servant(i)->gather_stats (stats); - } - - if (this->num_collocated_clients_ > 0) - { - this->cb_servants_.servant (0)->gather_stats (stats); - } - - return stats.actual_vs_expected (); -} - diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl deleted file mode 100755 index 1fdb29e8cc5..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_3/run_test.pl +++ /dev/null @@ -1,170 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -my $status = 0; - -my $iorfname_prefix = "servant"; -my $num_servants = 1; -my $num_orb_threads = 1; -my $num_remote_clients = 1; -my $num_csd_threads = 1; -my $num_collocated_clients = 0; -my $collocated_client_kind = 0; -my $client_kind = 0; - -my $i; -my $j; -my @iorfile; - -my $ARGC = @ARGV; - -if ($ARGC > 0) -{ - if ($ARGC > 1) - { - print STDERR "ERROR: Too many command-line arguments for $0.\n"; - exit 1; - } - - my $subtest = $ARGV[0]; - - if ($subtest eq 'remote') - { - $num_remote_clients = 40; - } - elsif ($subtest eq 'collocated') - { - $num_remote_clients = 0; - $num_collocated_clients = 1; - $num_csd_threads=1; - } - elsif ($subtest eq 'remote_orbthreads') - { - $num_orb_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_servants') - { - $num_servants = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_csdthreads') - { - $num_csd_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - } - elsif ($subtest eq 'big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'usage') - { - print STDOUT "Usage: $0 [<subtest>]\n" . - "\n" . - "Supported <subtest> values:\n" . - "\n" . - "\tremote\n" . - "\tcollocated\n" . - "\tremote_orbthreads\n" . - "\tremote_servants\n" . - "\tremote_csdthreads\n" . - "\tremote_big\n" . - "\tusage\n" . - "\n"; - exit 0; - } - else - { - print STDERR "ERROR: invalid subtest argument for $0: $subtest\n"; - exit 1; - } -} - -#Delete old ior files. -for ($i = 0; $i < $num_servants; $i++) { - my $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process("server_main", - "-p $iorfname_prefix " . - "-s $num_servants " . - "-n $num_csd_threads " . - "-t $num_orb_threads " . - "-r $num_remote_clients " . - "-c $num_collocated_clients " . - "-k $collocated_client_kind"); - -$SV->Spawn(); - -# Wait for the servant ior files created by server. -for ($i = 0; $i < $num_servants; $i++) { - if (PerlACE::waitforfile_timed - ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill(); - $SV->TimedWait(1); - exit 1; - } -} - -my $count = 0; - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client_id = $i + 1; - - $j = $i % $num_servants; - - $CLS[$i] = new PerlACE::Process("client_main", - "-i file://$iorfile[$j] ". - "-k $client_kind ". - "-n $client_id"); - $CLS[$i]->Spawn(); -} - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client = $CLS[$i]->WaitKill(60); - - if ($client != 0) - { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill(60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for ($i = 0; $i < $num_servants; $i++) { - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp deleted file mode 100644 index 93c4ba59b53..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_4/ServerApp.cpp +++ /dev/null @@ -1,383 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "AppHelper.h" -#include "OrbRunner.h" -#include "AppShutdown.h" -#include "TestAppExceptionC.h" -#include "Foo_C_Custom_ClientEngine.h" -#include "Foo_C_ClientEngine.h" -#include "Foo_C_Statistics.h" -#include "ace/OS.h" -#include "ace/Get_Opt.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - -ServerApp::ServerApp() - : TestAppBase("TP_Test_4_Server"), - ior_filename_prefix_("foo"), - num_servants_(1), - num_csd_threads_(1), - num_orb_threads_(1), - num_remote_clients_(1), - num_collocated_clients_(0), - collocated_client_kind_(0) -{ -} - - -ServerApp::~ServerApp() -{ -} - - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - int result = this->init(argc, argv ACE_ENV_ARG_PARAMETER); - if (result != 0) - { - return result; - } - ACE_CHECK_RETURN (-1); - - this->poa_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->csd_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->servant_setup(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->collocated_setup(); - this->poa_activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_collocated_clients(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->run_orb_event_loop(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - this->cleanup(); - return this->check_validity () ? 0 : -1; -} - - -int -ServerApp::init(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - this->orb_ = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Raises -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - unsigned num_clients = this->num_remote_clients_ + - this->num_collocated_clients_; - - TheAppShutdown->init(this->orb_.in(), num_clients ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} - - -void -ServerApp::poa_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_ = this->create_poa(this->orb_.in(), - "ChildPoa" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::csd_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->tp_strategy_ = new TAO::CSD::TP_Strategy(this->num_csd_threads_); - - if (!this->tp_strategy_->apply_to(this->poa_.in() ACE_ENV_ARG_PARAMETER)) - { - ACE_ERROR((LM_ERROR, - "Failed to apply CSD strategy to poa.\n")); - ACE_THROW(TestAppException()); - } - ACE_CHECK; -} - - -void -ServerApp::servant_setup(ACE_ENV_SINGLE_ARG_DECL) -{ - this->servants_.create_and_activate(this->num_servants_, - this->orb_.in (), - this->poa_.in (), - this->ior_filename_prefix_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::collocated_setup() -{ - int custom_client_id_start = this->num_remote_clients_; - - unsigned servant_index = 0; - - for (unsigned i = 0; i < this->num_collocated_clients_; i++) - { - if (i > 0) - { - // Dole out the servant object references in a round-robin fashion. - servant_index = (servant_index + 1) % this->num_servants_; - } - - ServantListType::T_stub_var obj = this->servants_.objref(servant_index); - - ClientEngine_Handle engine = - new Foo_C_Custom_ClientEngine(this->servants_.servant(servant_index), - obj.in(), - this->tp_strategy_.in(), - ++ custom_client_id_start); - this->collocated_client_task_.add_engine(engine.in()); - } -} - - -void -ServerApp::poa_activate(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POAManager_var poa_manager - = this->poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void -ServerApp::run_collocated_clients(ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->num_collocated_clients_ > 0) - { - if (this->collocated_client_task_.open() == -1) - { - ACE_THROW (TestAppException ()); - } - } -} - - -void -ServerApp::run_orb_event_loop(ACE_ENV_SINGLE_ARG_DECL) -{ - OrbRunner orb_runner(this->orb_.in(), this->num_orb_threads_); - orb_runner.run(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - TheAppShutdown->wait (); -} - - -void -ServerApp::cleanup() -{ - for (unsigned i = 0; i < this->num_servants_; i++) - { - this->servants_.servant(i)->dump(); - } - - // Wait for all of the collocated client task threads to finish. - if (this->num_collocated_clients_ > 0) - { - this->collocated_client_task_.wait(); - } -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - this->exe_name_ = argv[0]; - - ACE_Get_Opt get_opts(argc, argv, "p:s:n:t:r:c:k:"); - - int c; - - while ((c = get_opts()) != -1) - { - int result = 0; - switch (c) - { - case 'p': - this->ior_filename_prefix_ = get_opts.opt_arg(); - break; - - case 's': - result = this->set_arg(this->num_servants_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 'n': - result = this->set_arg(this->num_csd_threads_, - get_opts.opt_arg(), - c, - "num_servants", - 1); - break; - - case 't': - result = this->set_arg(this->num_orb_threads_, - get_opts.opt_arg(), - c, - "num_orb_threads", - 1); - break; - - case 'r': - result = this->set_arg(this->num_remote_clients_, - get_opts.opt_arg(), - c, - "num_remote_clients"); - break; - - case 'c': - result = this->set_arg(this->num_collocated_clients_, - get_opts.opt_arg(), - c, - "num_collocated_clients"); - break; - - case 'k': - result = this->set_arg(this->collocated_client_kind_, - get_opts.opt_arg(), - c, - "collocated_client_kind"); - break; - - case '?': - this->usage_statement(); - return 1; - - default: - this->usage_statement(); - return -1; - } - - if (result != 0) - { - return result; - } - } - - return this->arg_dependency_checks(); -} - -void -ServerApp::usage_statement() -{ - ACE_ERROR((LM_ERROR, - "Usage: %s [options]\n\n" - "OPTIONS:\n\n" - "\t[-p <ior_filename_prefix>]\n" - "\t[-s <num_servants>]\n" - "\t[-n <num_csd_threads>]\n" - "\t[-t <num_orb_threads>]\n" - "\t[-r <num_remote_clients>]\n" - "\t[-c <num_collocated_clients>]\n" - "\t[-k <collocated_client_kind>]\n" - "\t[-?]\n\n", - this->exe_name_.c_str())); -} - - -int -ServerApp::arg_dependency_checks() -{ - return (this->num_remote_clients_ - + this->num_collocated_clients_) > 0 ? 0 : -1; -} - - -int -ServerApp::set_arg(unsigned& value, - const char* arg, - char opt, - const char* name, - int min) -{ - int tmp = ACE_OS::atoi(arg); - - if (tmp < min) - { - ACE_ERROR((LM_ERROR, - "Error: -%c <%s> must be integer type with a value of, " - "at least, %d.\n", opt, name, min)); - this->usage_statement(); - return -1; - } - - value = tmp; - - return 0; -} - - -PortableServer::POA_ptr -ServerApp::create_poa(CORBA::ORB_ptr orb, - const char* poa_name - ACE_ENV_ARG_DECL) -{ - // Get the Root POA. - PortableServer::POA_var root_poa - = RefHelper<PortableServer::POA>::resolve_initial_ref(orb, - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var poa - = AppHelper::create_poa(poa_name, - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PortableServer::POA::_nil ()); - - // Give away the child POA_ptr from the POA_var variable. - return poa._retn(); -} - - -bool -ServerApp::check_validity () -{ - Foo_C_Statistics stats (this->num_remote_clients_, - this->num_collocated_clients_); - - Foo_C_ClientEngine::expected_results (stats); - Foo_C_Custom_ClientEngine::expected_results (stats); - - for (unsigned i = 0; i < this->num_servants_; i++) - { - this->servants_.servant(i)->gather_stats(stats); - } - - return stats.actual_vs_expected (); -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl deleted file mode 100755 index 5b93da07b74..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_4/run_test.pl +++ /dev/null @@ -1,177 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -my $status = 0; - -my $iorfname_prefix = "servant"; -my $num_servants = 1; -my $num_orb_threads = 1; -my $num_remote_clients = 1; -my $num_csd_threads = 1; -my $num_collocated_clients = 0; -my $collocated_client_kind = 0; -my $client_kind = 0; - -my $i; -my $j; -my @iorfile; - -my $ARGC = @ARGV; - -if ($ARGC > 0) -{ - if ($ARGC > 1) - { - print STDERR "ERROR: Too many command-line arguments for $0.\n"; - exit 1; - } - - my $subtest = $ARGV[0]; - - if ($subtest eq 'remote') - { - $num_remote_clients = 40; - } - elsif ($subtest eq 'collocated') - { - $num_remote_clients = 0; - $num_collocated_clients = 1; - } - elsif ($subtest eq 'collocated_big') - { - $num_remote_clients = 0; - $num_csd_threads = 5; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'remote_orbthreads') - { - $num_orb_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_servants') - { - $num_servants = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_csdthreads') - { - $num_csd_threads = 5; - $num_remote_clients = 40; - } - elsif ($subtest eq 'remote_big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - } - elsif ($subtest eq 'big') - { - $num_csd_threads = 5; - $num_servants = 10; - $num_orb_threads = 4; - $num_remote_clients = 40; - $num_collocated_clients = 40; - } - elsif ($subtest eq 'usage') - { - print STDOUT "Usage: $0 [<subtest>]\n" . - "\n" . - "Supported <subtest> values:\n" . - "\n" . - "\tremote\n" . - "\tcollocated\n" . - "\tremote_orbthreads\n" . - "\tremote_servants\n" . - "\tremote_csdthreads\n" . - "\tremote_big\n" . - "\tusage\n" . - "\n"; - exit 0; - } - else - { - print STDERR "ERROR: invalid subtest argument for $0: $subtest\n"; - exit 1; - } -} - -#Delete old ior files. -for ($i = 0; $i < $num_servants; $i++) { - my $servant_id = sprintf("%02d", ($i + 1)); - $iorfile[$i] = PerlACE::LocalFile($iorfname_prefix . "_$servant_id.ior"); - unlink $iorfile[$i]; -} - -$SV = new PerlACE::Process("server_main", - "-p $iorfname_prefix " . - "-s $num_servants " . - "-n $num_csd_threads " . - "-t $num_orb_threads " . - "-r $num_remote_clients " . - "-c $num_collocated_clients " . - "-k $collocated_client_kind"); - -$SV->Spawn(); - -# Wait for the servant ior files created by server. -for ($i = 0; $i < $num_servants; $i++) { - if (PerlACE::waitforfile_timed - ($iorfile[$i], - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile[$i]>\n"; - $SV->Kill(); - $SV->TimedWait(1); - exit 1; - } -} - -my $count = 0; - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - - $client_id = $i+1; - - $j = $i % $num_servants; - - $CLS[$i] = new PerlACE::Process("client_main", - "-i file://$iorfile[$j] ". - "-k $client_kind ". - "-n $client_id"); - - $CLS[$i]->Spawn(); -} - -for ($i = 0; $i < $num_remote_clients; $i++) -{ - $client = $CLS[$i]->WaitKill(60); - - if ($client != 0) - { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill(60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -#Delete ior files generated by this run. -for ($i = 0; $i < $num_servants; $i++) { - unlink $iorfile[$i]; -} - -exit $status; diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/CSD_TP_Test_Dynamic.mpc b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/CSD_TP_Test_Dynamic.mpc deleted file mode 100644 index 5b90572b45d..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/CSD_TP_Test_Dynamic.mpc +++ /dev/null @@ -1,20 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): taoserver { - idlflags += -Sa -St - Source_Files { - Hello.cpp - server.cpp - } -} - -project(*Client): taoclient { - Source_Files { - TestC.cpp - client.cpp - } -} - - - diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h deleted file mode 100644 index e203d01535c..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/Hello.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// $Id$ -// - -#ifndef HELLO_H -#define HELLO_H -#include /**/ "ace/pre.h" - -#include "TestS.h" - -#if defined (_MSC_VER) -# if (_MSC_VER >= 1200) -# pragma warning(push) -# endif /* _MSC_VER >= 1200 */ -# pragma warning (disable:4250) -#endif /* _MSC_VER */ - -/// Implement the Test::Hello interface -class Hello - : public virtual POA_Test::Hello - , public virtual PortableServer::ServantBase -{ -public: - /// Constructor - Hello (CORBA::ORB_ptr orb); - - // = The skeleton methods - virtual char * get_string (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - /// Use an ORB reference to conver strings to objects and shutdown - /// the application. - CORBA::ORB_var orb_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif /* HELLO_H */ diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/client.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/client.cpp deleted file mode 100644 index f85722246b5..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/client.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// $Id$ - -#include "TestC.h" -#include "ace/Get_Opt.h" - -ACE_RCSID(Hello, client, "$Id$") - -const char *ior = "file://test.ior"; - -int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "k:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'k': - ior = get_opts.opt_arg (); - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s " - "-k <ior> " - "\n", - argv [0]), - -1); - } - // Indicates sucessful parsing of the command line - return 0; -} - -int -main (int argc, char *argv[]) -{ - ACE_TRY_NEW_ENV - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (parse_args (argc, argv) != 0) - return 1; - - CORBA::Object_var tmp = - orb->string_to_object(ior ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - Test::Hello_var hello = - Test::Hello::_narrow(tmp.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (CORBA::is_nil (hello.in ())) - { - ACE_ERROR_RETURN ((LM_DEBUG, - "Nil Test::Hello reference <%s>\n", - ior), - 1); - } - - CORBA::String_var the_string = - hello->get_string (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) - string returned <%s>\n", - the_string.in ())); - - hello->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Exception caught:"); - return 1; - } - ACE_ENDTRY; - - return 0; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl deleted file mode 100755 index 02041ea0c25..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/run_test.pl +++ /dev/null @@ -1,43 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$iorfile = PerlACE::LocalFile ("server.ior"); -unlink $iorfile; -$status = 0; - -$SV = new PerlACE::Process ("server", "-o $iorfile"); -$CL = new PerlACE::Process ("client", " -k file://$iorfile"); - -$SV->Spawn (); - -if (PerlACE::waitforfile_timed ($iorfile, - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; -} - -$client = $CL->SpawnWaitKill (300); - -if ($client != 0) { - print STDERR "ERROR: client returned $client\n"; - $status = 1; -} - -$server = $SV->WaitKill (10); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -unlink $iorfile; - -exit $status; diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/server.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/server.cpp deleted file mode 100644 index 177aad4d1d8..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Dynamic/server.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// $Id$ - -#include "Hello.h" -#include "ace/Get_Opt.h" -#include "ace/OS_NS_stdio.h" - -ACE_RCSID (Hello, - server, - "$Id$") - -const char *ior_output_file = "test.ior"; - -int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "o:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'o': - ior_output_file = get_opts.opt_arg (); - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s " - "-o <iorfile>" - "\n", - argv [0]), - -1); - } - // Indicates sucessful parsing of the command line - return 0; -} - -int -main (int argc, char *argv[]) -{ - ACE_TRY_NEW_ENV - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (CORBA::is_nil (root_poa.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Panic: nil RootPOA\n"), - 1); - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (parse_args (argc, argv) != 0) - return 1; - - Hello *hello_impl; - ACE_NEW_RETURN (hello_impl, - Hello (orb.in ()), - 1); - PortableServer::ServantBase_var owner_transfer(hello_impl); - - Test::Hello_var hello = - hello_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::String_var ior = - orb->object_to_string (hello.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // Output the IOR to the <ior_output_file> - FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); - if (output_file == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Cannot open output file for writing IOR: %s", - ior_output_file), - 1); - ACE_OS::fprintf (output_file, "%s", ior.in ()); - ACE_OS::fclose (output_file); - - poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n")); - - root_poa->destroy (1, 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Exception caught:"); - return 1; - } - ACE_ENDTRY; - - return 0; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/CSD_TP_Test_Static.mpc b/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/CSD_TP_Test_Static.mpc deleted file mode 100644 index 02cac4dc7da..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/CSD_TP_Test_Static.mpc +++ /dev/null @@ -1,21 +0,0 @@ -// -*- MPC -*- -// $Id$ - -project(*Server): csd_tp_test_exe_a { - exename=server_main - - Source_Files { - ServerApp.cpp - server_main.cpp - } -} - -project(*Client): csd_tp_test_exe_a { - exename=client_main - - Source_Files { - ClientApp.cpp - client_main.cpp - } -} - diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.cpp deleted file mode 100644 index 4fc25f46c1c..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/ClientApp.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// $Id$ -#include "ClientApp.h" -#include "Foo_A_ClientEngine.h" -#include "AppHelper.h" -#include "TestAppExceptionC.h" -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - -ClientApp::ClientApp() - : TestAppBase("TP_Test_1_Client"), - ior_ ("file://test.ior") -{ -} - - -ClientApp::~ClientApp() -{ -} - - -int -ClientApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - // Initialize the ORB before parsing our own args. - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Returns -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - // Convert the IOR string to a Foo_A object reference. - Foo_A_var foo = RefHelper<Foo_A>::string_to_ref(orb.in(), - this->ior_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the appropriate client "engine" object. - Foo_A_ClientEngine engine(foo.in()); - - // Execute the client algorithm - result = engine.execute(ACE_ENV_SINGLE_ARG_PARAMETER) ? 0 : -1; - ACE_CHECK_RETURN (-1); - - return result; -} - - -int -ClientApp::parse_args(int argc, char* argv[]) -{ - ACE_Get_Opt get_opts(argc, argv, "i:"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'i': - this->ior_ = get_opts.opt_arg(); - break; - - case '?': - ACE_DEBUG((LM_DEBUG, - "(%P|%t) usage: %s -i <ior_string>\n", - argv[0])); - return 1; - - default: - ACE_ERROR((LM_ERROR, - "(%P|%t) usage: %s -i <ior_string>\n", - argv[0])); - return -1; - } - } - - return 0; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp deleted file mode 100644 index 348e7987ba8..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/ServerApp.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// $Id$ -#include "ServerApp.h" -#include "Foo_A_i.h" -#include "AppHelper.h" -#include "TestAppExceptionC.h" -#include "AppShutdown.h" -#include "ace/Get_Opt.h" -// To force static load the service. -#include "tao/CSD_ThreadPool/CSD_ThreadPool.h" - - -ServerApp::ServerApp() - : TestAppBase("TP_Test_1_Server"), - ior_filename_ ("test.ior"), - num_clients_ (1) -{ -} - -ServerApp::~ServerApp() -{ -} - -int -ServerApp::run_i(int argc, char* argv[] ACE_ENV_ARG_DECL) -{ - // Initialize the ORB before parsing our own args. - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "" ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Parse the command-line args for this application. - // * Returns -1 if problems are encountered. - // * Returns 1 if the usage statement was explicitly requested. - // * Returns 0 otherwise. - int result = this->parse_args(argc, argv); - if (result != 0) - { - return result; - } - - TheAppShutdown->init(orb.in(), num_clients_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Get the Root POA - PortableServer::POA_var root_poa = - RefHelper<PortableServer::POA>::resolve_initial_ref(orb.in(), - "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Get the POAManager from the Root POA. - PortableServer::POAManager_var poa_manager - = root_poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the child POA Policies. - CORBA::PolicyList policies(0); - policies.length(0); - - // Create the child POA - PortableServer::POA_var child_poa = - AppHelper::create_poa("ChildPoa", - root_poa.in(), - poa_manager.in(), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Create the servant object. - Foo_A_i* servant = new Foo_A_i(); - - // Local smart pointer variable to deal with releasing the reference - // to the servant object when the variable falls out of scope. - PortableServer::ServantBase_var servant_owner(servant); - - // Obtain the object reference using the servant - CORBA::Object_var obj = AppHelper::activate_servant(child_poa.in(), - servant - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Stringify and save the object reference to a file - AppHelper::ref_to_file(orb.in(), - obj.in(), - this->ior_filename_.c_str() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Activate the POA Manager - poa_manager->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is ready. Running the ORB event loop.\n")); - - // Run the ORB event loop. - orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp ORB event loop has completed.\n")); - - TheAppShutdown->wait (); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the Root POA.\n")); - - root_poa->destroy(1, 1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp is destroying the ORB.\n")); - - orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_DEBUG((LM_DEBUG, - "(%P|%t) ServerApp has completed running successfully.\n")); - - return 0; -} - - -int -ServerApp::parse_args(int argc, char* argv[]) -{ - ACE_Get_Opt get_opts(argc, argv, "o:n:"); - - int c; - - while ((c = get_opts()) != -1) - { - switch (c) - { - case 'o': - this->ior_filename_ = get_opts.opt_arg(); - break; - - case 'n': - { - int tmp = ACE_OS::atoi(get_opts.opt_arg()); - if (tmp < 1) - { - ACE_ERROR((LM_ERROR, - "(%P|%t) Error. -n must be followed by an integer " - "value greater than 0.\n")); - return -1; - } - - this->num_clients_ = tmp; - } - break; - - case '?': - ACE_ERROR((LM_ERROR, - "(%P|%t) usage: %s -o <ior_filename> -n <num_clients>\n", - argv[0])); - return 1; - - default: - ACE_ERROR((LM_ERROR, - "(%P|%t) usage: %s -o <ior_filename> -n <num_clients>\n", - argv[0])); - return -1; - } - } - - return 0; -} diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl b/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl deleted file mode 100755 index e15decb6a63..00000000000 --- a/TAO/tests/CSD_Strategy_Tests/TP_Test_Static/run_test.pl +++ /dev/null @@ -1,55 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -*- perl -*- - -use lib '../../../../bin'; -use PerlACE::Run_Test; - -$iorfile = PerlACE::LocalFile ("server.ior"); -unlink $iorfile; -$status = 0; - -$num_clients=40; - -$SV = new PerlACE::Process ("server_main", "-o $iorfile -n $num_clients"); - -$SV->Spawn (); - -if (PerlACE::waitforfile_timed ($iorfile, - $PerlACE::wait_interval_for_process_creation) == -1) { - print STDERR "ERROR: cannot find file <$iorfile>\n"; - $SV->Kill (); $SV->TimedWait (1); - exit 1; -} - -for ($i = 0; $i < $num_clients; $i++) { - - @CLS[$i] = new PerlACE::Process ("client_main", " -i file://$iorfile"); - - @CLS[$i]->Spawn (); -} - -for ($i = 0; $i < $num_clients; $i++) { - - $client = @CLS[$i]->WaitKill (60); - - if ($client != 0) { - print STDERR "ERROR: client $i returned $client\n"; - $status = 1; - } -} - - -$server = $SV->WaitKill (60); - -if ($server != 0) { - print STDERR "ERROR: server returned $server\n"; - $status = 1; -} - -unlink $iorfile; - -exit $status; |