diff options
author | michel_j <michel_j@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-05-23 17:58:35 +0000 |
---|---|---|
committer | michel_j <michel_j@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-05-23 17:58:35 +0000 |
commit | a9f7c13cc5880361f10b33316275c1e2bdb0531c (patch) | |
tree | 356619b2ce4020f571bb845e627617e0f66a9281 | |
parent | 4eeeea501494df9261c59786e45483d4fed92569 (diff) | |
download | ATCD-a9f7c13cc5880361f10b33316275c1e2bdb0531c.tar.gz |
ChangeLogTag: Mon May 23 12:38:31 2005 Justin Michel <michel_j@ociweb.com>
63 files changed, 5401 insertions, 3208 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index fd0444dc1b9..f6394aec5f7 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,8 +1,141 @@ +Mon May 23 12:38:31 2005 Justin Michel <michel_j@ociweb.com> + + * orbsvcs/ImplRepo_Service/Activator_Options.cpp: + * orbsvcs/ImplRepo_Service/ImR_Activator.cpp: + * orbsvcs/ImplRepo_Service/ImR_Activator.idl: + * orbsvcs/ImplRepo_Service/ImR_Activator_i.h: + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp: + * orbsvcs/ImplRepo_Service/ImR_Locator.cpp: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.h: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + * orbsvcs/ImplRepo_Service/Locator_Options.h: + * orbsvcs/ImplRepo_Service/Locator_Options.cpp: + * orbsvcs/ImplRepo_Service/Locator_Repository.h: + * orbsvcs/ImplRepo_Service/Locator_Repository.cpp: + * orbsvcs/ImplRepo_Service/README.txt: + * orbsvcs/ImplRepo_Service/tao_imr_i.h: + * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: + * tao/ImR_Client/ImR_Client.cpp: + * tao/ImR_Client/ImplRepo.pidl: + * tao/ImR_Client/ImplRepoC.h: + * tao/ImR_Client/ImplRepoC.inl: + * tao/ImR_Client/ImplRepoC.cpp: + * tao/ImR_Client/ImplRepoS.h: + * tao/ImR_Client/ImplRepoS.cpp: + + Several bug fixes and enhancments to the ImR. + Cleaned up the perl to use strict and compile without warnings. + Displayed a message that the poa was being registered with the + ImR even when -orbuseimr 0 was specified. + Stop printing the exception details for unexpected exceptions + that happen during a call to server->shutdown(). At least on + windows, we often get COMM_FAILURE or TRANSIENT, because the + socket is not shutdown gracefully by the server. + Don't print the exception when a TRANSIENT is received while + pinging the server. This is not an error. Not sure why we were + getting 'No usable profile in IOR' messages though, when we + expect a 'POA in holding state'. + Merge in changes to support ImplRepo_Service -e, which + will clear the repository on startup. This makes it easier to write + persistence tests, and might be useful in general. + Updated to automatically set the ImplRepoServiceIOR and + TAO_USE_IMR environment variables, obviating the need to pass + -orbuseimr or -orbinitref ImplRepoService=... when using an + Activator to start a server. + Add -orbuseimr 0 to the cmd line args, so that the TAO_USE_IMR=1 + environment variable can be used safely. + Fix incorrect exception specifications in activator. + Fix command line help descriptions. + Combine add/update operations in the imr and imr util. + Support clean shutdown using ctrl-c as well as the + imr util shutdown-repo command. + Add detection of server process death, and an option to + notify the ImR when this happens, to the activator. + Fix some problems with exception macros and unused vars. + Fix bug with case-insensitive activator name and binary persistence. + + + * orbsvcs/examples/ImR/Advanced/Advanced.mpc: + * orbsvcs/examples/ImR/Advanced/Manager.idl: + * orbsvcs/examples/ImR/Advanced/Manager_i.h: + * orbsvcs/examples/ImR/Advanced/Manager_i.cpp: + * orbsvcs/examples/ImR/Advanced/Messenger.idl: + * orbsvcs/examples/ImR/Advanced/Messenger_i.h: + * orbsvcs/examples/ImR/Advanced/Messenger_i.cpp: + * orbsvcs/examples/ImR/Advanced/README: + * orbsvcs/examples/ImR/Advanced/TestClient.h: + * orbsvcs/examples/ImR/Advanced/TestClient.cpp: + * orbsvcs/examples/ImR/Advanced/TestServer.h: + * orbsvcs/examples/ImR/Advanced/TestServer.cpp: + * orbsvcs/examples/ImR/Advanced/client_main.cpp: + * orbsvcs/examples/ImR/Advanced/drivers/all: + * orbsvcs/examples/ImR/Advanced/drivers/defaults: + * orbsvcs/examples/ImR/Advanced/drivers/environment: + * orbsvcs/examples/ImR/Advanced/drivers/invocation: + * orbsvcs/examples/ImR/Advanced/drivers/persistence: + * orbsvcs/examples/ImR/Advanced/drivers/retry: + * orbsvcs/examples/ImR/Advanced/drivers/use_environment: + * orbsvcs/examples/ImR/Advanced/drivers/use_invocation: + * orbsvcs/examples/ImR/Advanced/drivers/use_persistence: + * orbsvcs/examples/ImR/Advanced/manager_main.cpp: + * orbsvcs/examples/ImR/Advanced/run_test.pl: + * orbsvcs/examples/ImR/Advanced/server_main.cpp: + + Dave Giovannini's new test which provides greater + coverage of ImR features. Some tests are still failing, so + this is not ready to be enabled for nightly builds. + + * orbsvcs/orbsvcs/IOR_Multicast.cpp: + + Fixed bug in unregistration, and updated log messages + to show the name of the class and method being logged. + + * orbsvcs/orbsvcs/Notify/XML_Saver.h: + * orbsvcs/orbsvcs/Notify/XML_Saver.cpp: + + Updated to use the new ACEXML_escape_string() function. + + * orbsvcs/orbsvcs/Shutdown_Utilities.h: + * orbsvcs/orbsvcs/Shutdown_Utilities.cpp: + + Updated to work on Windows. + + * orbsvcs/tests/ImplRepo/airplane_server_i.h: + * orbsvcs/tests/ImplRepo/airplane_server_i.cpp: + * orbsvcs/tests/ImplRepo/locked/run_test.pl: + * orbsvcs/tests/ImplRepo/nestea_server_i.h: + * orbsvcs/tests/ImplRepo/nestea_server_i.cpp: + * orbsvcs/tests/ImplRepo/run_test.pl: + * orbsvcs/tests/ImplRepo/scale/server_i.cpp: + + Basic code cleanup to match latest 1.4a. + Some tests were not shutting down correctly, and were + activating the poa manager too soon. + Nestea test prints the contents of ImplRepoServiceIOR and TAO_USE_IMR. + Stop passing -orbuseimr 1 and imr_init_ref in the command lines + registered with the ImR. + + + * orbsvcs/tests/Notify/Reconnecting/run_test.pl: + + Use -ORBObjRefStyle URL so that the XML file has consistent + contents, and can be compared for equality. This should let this + test pass on more (all?) platforms. + + * tao/ORB_Core.cpp: + + Add missing support for -ORBObjRefStyle IOR. + + * tao/ImR_Client/ImplRepoA.cpp: + + Removed this file, because the idl command line wasn't set to generate it. + + Mon May 23 06:12:01 2005 J.T. Conklin <jtc@acorntoolworks.com> - * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::remove_old_records): + * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::remove_old_records): - Fixed tipo introduced in last change. + Fixed tipo introduced in last change. Mon May 23 12:27:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> @@ -161,46 +294,46 @@ Mon May 23 05:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> Sun May 22 22:10:00 2005 J.T. Conklin <jtc@acorntoolworks.com> - * orbsvcs/tests/Log/Basic_Log_Test/Basic_Log_Test.cpp (display_records) - (delete_records): + * orbsvcs/tests/Log/Basic_Log_Test/Basic_Log_Test.cpp (display_records) + (delete_records): - Changed query language parameter from "TCL" to "EXTENDED_TCL". + Changed query language parameter from "TCL" to "EXTENDED_TCL". - * orbsvcs/orbsvcs/Log/Log_i.cpp (QUERY_LANG_SUPPORTED_BY_LOG): + * orbsvcs/orbsvcs/Log/Log_i.cpp (QUERY_LANG_SUPPORTED_BY_LOG): - Changed from "TCL" to "EXTENDED_TCL". + Changed from "TCL" to "EXTENDED_TCL". - * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::delete_records_by_id) - (TAO_Log_i::delete_records, TAO_Log_i::remove_old_records): + * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::delete_records_by_id) + (TAO_Log_i::delete_records, TAO_Log_i::remove_old_records): - Don't bother checking whether current_size is less than max_size - if not log_full. Avoids potentially costly calls into log store - (if/when we support strategized stores). + Don't bother checking whether current_size is less than max_size + if not log_full. Avoids potentially costly calls into log store + (if/when we support strategized stores). Sun May 22 18:02:07 2005 J.T. Conklin <jtc@acorntoolworks.com> - * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::delete_records) - (TAO_Log_i::remove_old_records): + * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::delete_records) + (TAO_Log_i::remove_old_records): - Like delete_records_by_id(), reset "log_full" if "current_size" - is less than "max_size". + Like delete_records_by_id(), reset "log_full" if "current_size" + is less than "max_size". Sun May 22 17:01:56 2005 J.T. Conklin <jtc@acorntoolworks.com> - * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::scheduled): + * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::scheduled): - Removed duplicate fetch of current time. + Removed duplicate fetch of current time. - * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::remove_old_records): + * orbsvcs/orbsvcs/Log/Log_i.cpp (TAO_Log_i::remove_old_records): - Corrected calculation of purge time. Arithmetic was being done on - time values without normalizing units first. + Corrected calculation of purge time. Arithmetic was being done on + time values without normalizing units first. Sun May 22 16:37:39 2005 J.T. Conklin <jtc@acorntoolworks.com> - * tao/Makefile.am: + * tao/Makefile.am: - Regenerated. + Regenerated. Sun May 22 20:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> @@ -242,18 +375,18 @@ Sun May 22 20:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> Sun May 22 10:33:34 2005 Ossama Othman <ossama@dre.vanderbilt.edu> - * tao/PortableServer/Root_POA.cpp (create_POA_i): + * tao/PortableServer/Root_POA.cpp (create_POA_i): - Increment the reference count immediately after binding the - child POA to children map. Addresses a seg fault introduced by - the leak fix described in ChangeLog entry "Sun May 22 00:00:31 - 2005 Ossama Othman <ossama@dre.vanderbilt.edu>". + Increment the reference count immediately after binding the + child POA to children map. Addresses a seg fault introduced by + the leak fix described in ChangeLog entry "Sun May 22 00:00:31 + 2005 Ossama Othman <ossama@dre.vanderbilt.edu>". - * tao/PortableServer/Root_POA.h (create_POA_i): + * tao/PortableServer/Root_POA.h (create_POA_i): - No need to return a pointer to TAO_Root_POA. Return a - PortableServer::POA_ptr instead. Allows implementation to be - slightly simplified. + No need to return a pointer to TAO_Root_POA. Return a + PortableServer::POA_ptr instead. Allows implementation to be + slightly simplified. Sun May 22 14:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp index 7c13173a280..463fa913844 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp @@ -180,9 +180,8 @@ Activator_Options::print_usage (void) const " ('install' or 'remove' or 'install_no_imr')\n" " -d level Sets the debug level\n" " -o file Outputs the ImR's IOR to a file\n" - " -l Notify the ImR Locator when a process exits\n" - " -n name Specify a name for the Activator\n" - " -s Runs as a service (NT Only)\n") + " -l Notify the ImR when a process exits\n" + " -n name Specify a name for the Activator\n") ); } @@ -221,6 +220,11 @@ Activator_Options::save_registry_options() (LPBYTE) this->name_.c_str(), this->name_.length() + 1); ACE_ASSERT(err == ERROR_SUCCESS); + DWORD tmpint = this->notify_imr_; + err = ACE_TEXT_RegSetValueEx(key, "NotifyImR", 0, REG_DWORD, + (LPBYTE) &tmpint , sizeof(tmpint)); + ACE_ASSERT(err == ERROR_SUCCESS); + err = ::RegCloseKey(key); ACE_ASSERT(err == ERROR_SUCCESS); #endif @@ -279,13 +283,14 @@ Activator_Options::load_registry_options () this->name_ = tmpstr; } - DWORD tmpint = this->notify_imr_; + DWORD tmpint = 0; sz = sizeof(tmpint); err = ACE_TEXT_RegQueryValueEx(key, "NotifyImR", 0, &type, (LPBYTE) &tmpint , &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_DWORD); } + this->notify_imr_ = tmpint != 0; err = ::RegCloseKey(key); ACE_ASSERT(err == ERROR_SUCCESS); diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp index 4f8d6ee8b9f..37eb23a1884 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp @@ -5,11 +5,47 @@ #include "ImR_Activator_i.h" #include "Activator_NT_Service.h" +#include "orbsvcs/Shutdown_Utilities.h" + +class ImR_Activator_Shutdown : public Shutdown_Functor +{ +public: + ImR_Activator_Shutdown(ImR_Activator_i& act); + + void operator() (int which_signal); +private: + ImR_Activator_i& act_; +}; + +ImR_Activator_Shutdown::ImR_Activator_Shutdown (ImR_Activator_i &act) + : act_(act) +{ +} + +void +ImR_Activator_Shutdown::operator() (int /*which_signal*/) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + this->act_.shutdown(true ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR Activator: "); + } + ACE_ENDTRY; +} + int run_standalone (Activator_Options& opts) { ImR_Activator_i server; + ImR_Activator_Shutdown killer (server); + Service_Shutdown kill_contractor(killer); + ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { @@ -91,7 +127,7 @@ run_service_command (Activator_Options& opts) opts.service_command() == Activator_Options::SC_INSTALL_NO_LOCATOR) { const DWORD MAX_PATH_LENGTH = 4096; - char pathname[MAX_PATH_LENGTH]; + char pathname[MAX_PATH_LENGTH]; DWORD length = ACE_TEXT_GetModuleFileName(NULL, pathname, MAX_PATH_LENGTH); if (length == 0 || length >= MAX_PATH_LENGTH - sizeof(" -s")) @@ -127,19 +163,19 @@ run_service_command (Activator_Options& opts) } else { ACE_ERROR((LM_ERROR, "Error: Failed to install service.\n")); } - if (ret == 0) + if (ret == 0) return 1; } else if (opts.service_command() == Activator_Options::SC_REMOVE) { int ret = SERVICE::instance ()->remove (); ACE_DEBUG ((LM_DEBUG, "ImR Activator: Service removed.\n")); - if (ret == 0) + if (ret == 0) return 1; // If successfull, then we don't want to continue. } - else + else { - ACE_ERROR ((LM_ERROR, "Error: Unknown service command :%d \n", + ACE_ERROR ((LM_ERROR, "Error: Unknown service command :%d \n", opts.service_command())); return -1; } diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl index 0027fc8c159..aa0fecbd401 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl @@ -11,6 +11,8 @@ module ImplementationRepository // Tells the activator to launch a server with the given information. void start_server(in string name, in string cmdline, in string dir, in EnvironmentList env) raises(CannotActivate); + + oneway void shutdown(); }; }; diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp index dea5e9fcbf4..74911fa6839 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp @@ -197,7 +197,11 @@ ImR_Activator_i::init_with_orb(CORBA::ORB_ptr orb, const Activator_Options& opts int ImR_Activator_i::init (Activator_Options& opts ACE_ENV_ARG_DECL) { - ACE_ARGV av(opts.cmdline()); + ACE_CString cmdline = opts.cmdline(); + // Must use IOR style objrefs, because URLs sometimes get mangled when passed + // to ACE_Process::spawn(). + cmdline += "-ORBUseImR 0 -ORBObjRefStyle IOR "; + ACE_ARGV av(cmdline.c_str()); int argc = av.argc(); CORBA::ORB_var orb = @@ -218,6 +222,8 @@ ImR_Activator_i::fini (ACE_ENV_SINGLE_ARG_DECL) if (debug_ > 1) ACE_DEBUG((LM_DEBUG, "ImR Activator: Shutting down...\n")); + this->process_mgr_.close(); + this->root_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -227,7 +233,27 @@ ImR_Activator_i::fini (ACE_ENV_SINGLE_ARG_DECL) this->registration_token_ ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } + } + ACE_CATCH(CORBA::COMM_FAILURE, ex) + { + if (debug_ > 1) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Unable to unregister from ImR.\n")); + } + ACE_CATCH(CORBA::TRANSIENT, ex) + { + if (debug_ > 1) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Unable to unregister from ImR.\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR Activator: fini"); + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK_RETURN (-1); + ACE_TRY + { this->orb_->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; @@ -236,7 +262,7 @@ ImR_Activator_i::fini (ACE_ENV_SINGLE_ARG_DECL) } ACE_CATCHANY { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Activator_i::fini"); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR Activator: fini 2"); ACE_RE_THROW; } ACE_ENDTRY; @@ -253,6 +279,19 @@ ImR_Activator_i::run (ACE_ENV_SINGLE_ARG_DECL) } void +ImR_Activator_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException)) +{ + shutdown(false ACE_ENV_ARG_PARAMETER); +} + +void +ImR_Activator_i::shutdown (bool wait_for_completion ACE_ENV_ARG_DECL) +{ + this->orb_->shutdown(wait_for_completion ACE_ENV_ARG_PARAMETER); +} + +void ImR_Activator_i::start_server(const char* name, const char* cmdline, const char* dir, @@ -273,6 +312,13 @@ ImR_Activator_i::start_server(const char* name, // handles. This includes stdin, stdout, logs, etc. proc_opts.handle_inheritence (0); + proc_opts.setenv("TAO_USE_IMR", "1"); + if (!CORBA::is_nil (this->locator_.in ())) + { + CORBA::String_var ior = orb_->object_to_string(locator_.in()); + proc_opts.setenv("ImplRepoServiceIOR", ior.in()); + } + for (CORBA::ULong i = 0; i < env.length(); ++i) { proc_opts.setenv (env[i].name.in(), env[i].value.in()); } diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h index dedfe744ced..7b62dc525cf 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h @@ -29,7 +29,7 @@ class Activator_Options; -// ace/Functor.h doesn't provide functors for every built in integer type. +// ace/Functor.h doesn't provide functors for every built in integer type. // Depending on the platform and what pid_t maps to, the functors may be missing. struct ACE_Hash_pid_t { @@ -70,6 +70,9 @@ public: const ImplementationRepository::EnvironmentList & env ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::CannotActivate)); + void shutdown(ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + /// Initialize the Server state - parsing arguments and waiting. int init (Activator_Options& opts ACE_ENV_ARG_DECL_WITH_DEFAULTS); @@ -79,6 +82,9 @@ public: /// Runs the orb. int run (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + /// Shutdown the orb. + void shutdown (bool wait_for_completion ACE_ENV_ARG_DECL); + private: int init_with_orb (CORBA::ORB_ptr orb, const Activator_Options& opts ACE_ENV_ARG_DECL_WITH_DEFAULTS); diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp index 86fe4313604..b8d88642125 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp @@ -3,12 +3,47 @@ #include "ImR_Locator_i.h" #include "Locator_NT_Service.h" #include "Locator_Options.h" +#include "orbsvcs/Shutdown_Utilities.h" + +class ImR_Locator_Shutdown : public Shutdown_Functor +{ +public: + ImR_Locator_Shutdown(ImR_Locator_i& imr); + + void operator() (int which_signal); +private: + ImR_Locator_i& imr_; +}; + +ImR_Locator_Shutdown::ImR_Locator_Shutdown (ImR_Locator_i &imr) + : imr_(imr) +{ +} + +void +ImR_Locator_Shutdown::operator() (int /*which_signal*/) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + this->imr_.shutdown(true ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR: "); + } + ACE_ENDTRY; +} int run_standalone (Options& opts) { ImR_Locator_i server; + ImR_Locator_Shutdown killer (server); + Service_Shutdown kill_contractor(killer); + ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { @@ -81,7 +116,7 @@ run_service (void) static int run_service_command (Options& opts) { - if (opts.service_command() == Options::SC_NONE) + if (opts.service_command() == Options::SC_NONE) return 0; #if defined (ACE_WIN32) @@ -90,7 +125,7 @@ run_service_command (Options& opts) if (opts.service_command() == Options::SC_INSTALL) { const DWORD MAX_PATH_LENGTH = 4096; - char pathname[MAX_PATH_LENGTH]; + char pathname[MAX_PATH_LENGTH]; DWORD length = ACE_TEXT_GetModuleFileName(NULL, pathname, MAX_PATH_LENGTH); if (length == 0 || length >= MAX_PATH_LENGTH - sizeof(" -s")) @@ -111,19 +146,19 @@ run_service_command (Options& opts) } else { ACE_ERROR((LM_ERROR, "Error: Failed to install service. error:%d\n", errno)); } - if (ret == 0) + if (ret == 0) return 1; } else if (opts.service_command() == Options::SC_REMOVE) { int ret = SERVICE::instance ()->remove (); ACE_DEBUG ((LM_DEBUG, "ImR: Service removed.\n")); - if (ret == 0) + if (ret == 0) return 1; // If successfull, then we don't want to continue. } - else + else { - ACE_ERROR ((LM_ERROR, "Error: Unknown service command :%d \n", + ACE_ERROR ((LM_ERROR, "Error: Unknown service command :%d \n", opts.service_command())); return -1; } diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp index adc06001a88..4e6b302d802 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp @@ -14,6 +14,7 @@ #include "ace/ARGV.h" #include "ace/OS_NS_sys_time.h" +#include "ace/Vector_T.h" static const int DEFAULT_START_LIMIT = 1; @@ -150,7 +151,7 @@ ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts ACE_ENV_ARG_DECL // The init can return 1 if there is no persistent file yet. In // that case, we need not do anything for now. int init_result = - this->repository_.init (opts.repository_mode(), opts.persist_file_name()); + this->repository_.init (opts); if (init_result == -1) { ACE_ERROR_RETURN ((LM_ERROR, "Repository failed to initialize\n"), -1); @@ -187,7 +188,7 @@ int ImR_Locator_i::init(Options& opts ACE_ENV_ARG_DECL) { ACE_CString cmdline = opts.cmdline(); - cmdline += " -orbcollocation no"; + cmdline += " -orbcollocation no -orbuseimr 0"; ACE_ARGV av(cmdline.c_str()); int argc = av.argc(); char** argv = av.argv(); @@ -226,14 +227,75 @@ ImR_Locator_i::run(ACE_ENV_SINGLE_ARG_DECL) return 0; } +void +ImR_Locator_i::shutdown(CORBA::Boolean activators, CORBA::Boolean servers ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (servers != 0 && this->repository_.servers().current_size() > 0) + { + // Note : shutdown is oneway, so we can't throw + ACE_ERROR((LM_ERROR, "ImR: Shutdown of all servers not implemented.\n")); + } + if (activators != 0 && this->repository_.activators().current_size() > 0) + { + ACE_Vector<ImplementationRepository::Activator_var> acts; + Locator_Repository::AIMap::ENTRY* entry = 0; + Locator_Repository::AIMap::ITERATOR it(this->repository_.activators()); + for (;it.next(entry) != 0; it.advance()) + { + Activator_Info_Ptr info = entry->int_id_; + ACE_ASSERT(! info.null()); + connect_activator(*info); + if (! CORBA::is_nil(info->activator.in())) + acts.push_back(info->activator); + } + + int shutdown_errs = 0; + + for (size_t i = 0; i < acts.size(); ++i) + { + ACE_TRY + { + acts[i]->shutdown(ACE_ENV_SINGLE_ARG_PARAMETER); + acts[i] = ImplementationRepository::Activator::_nil(); + } + ACE_CATCHANY + { + ++shutdown_errs; + if (debug_ > 1) + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR: shutdown activator"); + } + } + ACE_ENDTRY; + ACE_CHECK; + } + if (debug_ > 0 && shutdown_errs > 0) + { + ACE_DEBUG((LM_DEBUG, "ImR: Some activators could not be shut down.\n")); + } + } + // Technically, we should wait for all the activators to unregister, but + // ,for now at least, it doesn't seem worth it. + shutdown(false ACE_ENV_ARG_PARAMETER); +} + +void +ImR_Locator_i::shutdown (bool wait_for_completion ACE_ENV_ARG_DECL) +{ + this->orb_->shutdown(wait_for_completion ACE_ENV_ARG_PARAMETER); +} + int ImR_Locator_i::fini (ACE_ENV_SINGLE_ARG_DECL) { ACE_TRY { - if (debug_ > 0) + if (debug_ > 1) ACE_DEBUG((LM_DEBUG, "ImR: Shutting down...\n")); + teardown_multicast(); + this->root_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -253,6 +315,16 @@ ImR_Locator_i::fini (ACE_ENV_SINGLE_ARG_DECL) return 0; } +void +ImR_Locator_i::teardown_multicast() +{ + ACE_Reactor* r = ior_multicast_.reactor(); + if (r != 0) { + r->remove_handler(&ior_multicast_, ACE_Event_Handler::READ_MASK); + ior_multicast_.reactor(0); + } +} + int ImR_Locator_i::setup_multicast (ACE_Reactor* reactor, const char* ior) { @@ -302,13 +374,11 @@ ImR_Locator_i::setup_multicast (ACE_Reactor* reactor, const char* ior) ACE_DEBUG ((LM_DEBUG, "ImR: cannot register Event handler\n")); return -1; } - - return 0; #else /* ACE_HAS_IP_MULTICAST*/ ACE_UNUSED_ARG (reactor); ACE_UNUSED_ARG (ior); - return 0; #endif /* ACE_HAS_IP_MULTICAST*/ + return 0; } CORBA::Long @@ -387,9 +457,7 @@ ACE_THROW_SPEC ((CORBA::SystemException)) ACE_ASSERT(name != 0); if (this->debug_ > 1) - ACE_DEBUG((LM_DEBUG, - "ImR: Server has died <%s>.\n", - name)); + ACE_DEBUG((LM_DEBUG, "ImR: Server has died <%s>.\n", name)); Server_Info_Ptr info = this->repository_.get_server(name); if (! info.null()) @@ -713,45 +781,25 @@ ImR_Locator_i::set_timeout_policy(CORBA::Object_ptr obj, const ACE_Time_Value& t } void -ImR_Locator_i::register_server (const char* server, +ImR_Locator_i::add_or_update_server (const char* server, const ImplementationRepository::StartupOptions &options ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound)) -{ - register_server_i(server, options, false ACE_ENV_ARG_PARAMETER); -} - -void -ImR_Locator_i::reregister_server (const char* server, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL ) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound)) -{ - register_server_i(server, options, true ACE_ENV_ARG_PARAMETER); -} -void -ImR_Locator_i::register_server_i (const char* server, - const ImplementationRepository::StartupOptions &options, - bool allow_updates - ACE_ENV_ARG_DECL ) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, ImplementationRepository::NotFound)) { ACE_ASSERT(server != 0); if (this->read_only_) { - ACE_DEBUG((LM_DEBUG, "ImR: Cannot register server <%s> due to locked database.\n", server)); + ACE_DEBUG((LM_DEBUG, "ImR: Cannot add/update server <%s> due to locked database.\n", server)); ACE_THROW (CORBA::NO_PERMISSION ( CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), CORBA::COMPLETED_NO)); } + if (debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR: Add/Update server <%s>.\n", server)); + int limit = options.start_limit; if (limit < 0) { @@ -776,12 +824,6 @@ ImR_Locator_i::register_server_i (const char* server, options.activation, limit); } - else if (! allow_updates) - { - ACE_ERROR ((LM_ERROR, - "ImR: Server <%s> already registered.\n", server)); - ACE_THROW (ImplementationRepository::AlreadyRegistered()); - } else { if (this->debug_ > 1) @@ -799,9 +841,6 @@ ImR_Locator_i::register_server_i (const char* server, ACE_UNUSED_ARG(err); } - if (debug_ > 0) - ACE_DEBUG ((LM_DEBUG, "ImR: Add/Update server <%s>.\n", server)); - if (this->debug_ > 1) { // Note : The info var may be null, so we use options. @@ -850,6 +889,18 @@ ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) { if (this->repository_.remove_server (name) == 0) { + if (this->debug_ > 1) + ACE_DEBUG ((LM_DEBUG, "ImR: Removing Server <%s>...\n", name)); + + PortableServer::POA_var poa = findPOA(name); + ACE_CHECK; + if (! CORBA::is_nil(poa.in())) + { + bool etherealize = true; + bool wait = false; + poa->destroy(etherealize, wait ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } if (this->debug_ > 0) ACE_DEBUG ((LM_DEBUG, "ImR: Removed Server <%s>.\n", name)); } @@ -862,6 +913,21 @@ ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) } } +PortableServer::POA_ptr +ImR_Locator_i::findPOA(const char* name) +{ + ACE_TRY_NEW_ENV + { + bool activate_it = false; + return root_poa_->find_POA(name, activate_it ACE_ENV_ARG_PARAMETER); + } + ACE_CATCHANY + {// Ignore + } + ACE_ENDTRY; + return PortableServer::POA::_nil(); +} + void ImR_Locator_i::shutdown_server (const char* server ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) @@ -916,11 +982,12 @@ ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) if (this->debug_ > 1) { ACE_DEBUG((LM_DEBUG, "ImR: Exception ignored while shutting down <%s>\n", server)); - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, ""); } } ACE_ENDTRY; + // Note : In most cases this has already been done in the server_is_shutting_down() + // operation, but it doesn't hurt to update it again. info->reset(); int err = this->repository_.update_server(*info); @@ -1018,23 +1085,25 @@ void ImR_Locator_i::find (const char* server, ImplementationRepository::ServerInformation_out imr_info ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_ASSERT(server != 0); ACE_NEW_THROW_EX (imr_info, ImplementationRepository::ServerInformation, CORBA::NO_MEMORY ()); Server_Info_Ptr info = this->repository_.get_server(server); - if (info.null()) + if (! info.null()) { - ACE_ERROR ((LM_ERROR, "ImR: Cannot find info for server <%s>\n", server)); - ACE_THROW(ImplementationRepository::NotFound()); - } - imr_info = info->createImRServerInfo(ACE_ENV_SINGLE_ARG_PARAMETER); if (this->debug_ > 1) ACE_DEBUG ((LM_DEBUG, "ImR: Found server %s.\n", server)); } + else + { + if (debug_ > 1) + ACE_DEBUG((LM_DEBUG, "ImR: Cannot find server <%s>\n", server)); + } +} void ImR_Locator_i::list (CORBA::ULong how_many, @@ -1043,7 +1112,7 @@ ImR_Locator_i::list (CORBA::ULong how_many, ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::SystemException)) { - if (this->debug_ > 0) + if (this->debug_ > 1) ACE_DEBUG ((LM_DEBUG, "ImR: List servers.\n")); // Initialize the out variables, so if we return early, they will @@ -1100,7 +1169,7 @@ ImR_Locator_i::list (CORBA::ULong how_many, CORBA::Object_var obj = this->imr_poa_->id_to_reference(id.in() ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; server_iterator = ImplementationRepository:: - ServerInformationIterator::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); + ServerInformationIterator::_unchecked_narrow(obj.in() ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_CATCHANY @@ -1157,7 +1226,7 @@ ImR_Locator_i::connect_activator (Activator_Info& info) return; } - if (debug_ > 0) + if (debug_ > 1) ACE_DEBUG((LM_DEBUG, "ImR: Connected to activator <%s>\n", info.name.c_str())); } ACE_CATCHANY @@ -1407,7 +1476,7 @@ ImR_Locator_i::is_alive_i(Server_Info& info) if (debug_ > 1) { ACE_DEBUG((LM_DEBUG, - "ImR: <%s> Unknown Local TRANSIENT. alive=false.\n", info.name.c_str())); + "ImR: <%s> TRANSIENT exception. alive=false.\n", info.name.c_str())); } info.last_ping = ACE_Time_Value::zero; } diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h index 414ee3ccec0..a9c34b6863d 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h @@ -48,6 +48,9 @@ public: /// Run using the orb reference created during init() int run (ACE_ENV_SINGLE_ARG_DECL); + /// Shutdown the orb. + void shutdown (bool wait_for_completion ACE_ENV_ARG_DECL); + int debug() const; // Note : See the IDL for descriptions of the operations. @@ -70,33 +73,22 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound, ImplementationRepository::CannotActivate)); - virtual void register_server (const char * name, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound)); - virtual void reregister_server (const char * name, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound )); - virtual void remove_server (const char * name - ACE_ENV_ARG_DECL) + virtual void add_or_update_server (const char * name, + const ImplementationRepository::StartupOptions &options ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - virtual void shutdown_server (const char * name - ACE_ENV_ARG_DECL) + virtual void remove_server (const char * name ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - virtual void find (const char * name, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL) + virtual void shutdown_server (const char * name ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); + virtual void find (const char * name, + ImplementationRepository::ServerInformation_out info ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); virtual void list ( CORBA::ULong how_many, ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator - ACE_ENV_ARG_DECL) + ImplementationRepository::ServerInformationIterator_out server_iterator ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void shutdown(CORBA::Boolean activators, CORBA::Boolean servers ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); // Server->Locator @@ -138,20 +130,13 @@ private: ImplementationRepository::NotFound, ImplementationRepository::CannotActivate)); - void register_server_i (const char * name, - const ImplementationRepository::StartupOptions &options, - bool allow_updates - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound )); - bool is_alive(Server_Info& info); int is_alive_i(Server_Info& info); // Set up the multicast related if 'm' is passed on the command // line. int setup_multicast (ACE_Reactor *reactor, const char *ior); + void teardown_multicast(); void unregister_activator_i(const char* activator); @@ -164,6 +149,7 @@ private: void connect_server(Server_Info& info); + PortableServer::POA_ptr findPOA(const char* name); private: // The class that handles the forwarding. diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp index faf93fc91a7..152d21939ae 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp @@ -30,6 +30,7 @@ static const int DEFAULT_START_TIMEOUT = 60; // seconds Options::Options () : repo_mode_ (REPO_NONE) +, erase_repo_ (false) , debug_ (1) , multicast_ (false) , service_ (false) @@ -163,6 +164,11 @@ Options::parse_args (int &argc, char *argv[]) this->repo_mode_ = REPO_XML_FILE; } else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-e")) == 0) + { + this->erase_repo_ = true; + } + else if (ACE_OS::strcasecmp (shifter.get_current (), ACE_TEXT ("-t")) == 0) { shifter.consume_arg (); @@ -241,11 +247,10 @@ Options::print_usage (void) const " -l Lock the database\n" " -m Turn on multicast\n" " -o file Outputs the ImR's IOR to a file\n" - " -s Runs as a service (NT Only)\n" " -p file Use file for storing/loading settings\n" " -x file Use XML file for storing/loading setting\n" " -r Use the registry for storing/loading settings\n" - " -t secs Server startup timeout.(Default=0)\n" + " -t secs Server startup timeout.(Default=60s)\n" " -v msecs Server verification interval.(Default=10s)\n" )); } @@ -476,6 +481,12 @@ Options::repository_mode (void) const } bool +Options::repository_erase (void) const +{ + return this->erase_repo_; +} + +bool Options::readonly (void) const { return this->readonly_; diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h index 682b2769523..17f40bddcac 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h @@ -83,6 +83,9 @@ public: RepoMode repository_mode (void) const; + /// Do we wish to clear out the repository + bool repository_erase (void) const; + /// Returns the timeout value for program starting. ACE_Time_Value startup_timeout (void) const; @@ -107,6 +110,9 @@ private: // xml, heap, or registry RepoMode repo_mode_; + // do we clear out the repository on load + bool erase_repo_; + /// Debug level. unsigned int debug_; diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp index 2d172e8734f..28224f3c804 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp @@ -6,6 +6,7 @@ #include "ACEXML/parser/parser/Parser.h" #include "ACEXML/common/FileCharStream.h" +#include "ACEXML/common/XML_Util.h" ACE_RCSID (ImplRepo_Service, Locator_Repository, "$Id$") @@ -216,11 +217,14 @@ static void saveAsXML(const ACE_CString& fname, Locator_Repository& repo) { for (; siit.next(sientry); siit.advance()) { Server_Info_Ptr& info = sientry->int_id_; + ACE_CString cmdline = ACEXML_escape_string(info->cmdline); + ACE_CString wdir = ACEXML_escape_string(info->dir); + ACE_OS::fprintf(fp,"\t<%s", Locator_XMLHandler::SERVER_INFO_TAG); ACE_OS::fprintf(fp," name=\"%s\"", info->name.c_str()); ACE_OS::fprintf(fp," activator=\"%s\"", info->activator.c_str()); - ACE_OS::fprintf(fp," command_line=\"%s\"", info->cmdline.c_str()); - ACE_OS::fprintf(fp," working_dir=\"%s\"", info->dir.c_str()); + ACE_OS::fprintf(fp," command_line=\"%s\"", cmdline.c_str()); + ACE_OS::fprintf(fp," working_dir=\"%s\"", wdir.c_str()); ACE_CString amodestr = ImR_Utils::activationModeToString(info->activation_mode); ACE_OS::fprintf(fp," activation_mode=\"%s\"", amodestr.c_str()); ACE_OS::fprintf(fp," start_limit=\"%d\"", info->start_limit); @@ -232,7 +236,8 @@ static void saveAsXML(const ACE_CString& fname, Locator_Repository& repo) { { ACE_OS::fprintf(fp,"\t\t<%s", Locator_XMLHandler::ENVIRONMENT_TAG); ACE_OS::fprintf(fp," name=\"%s\"", info->env_vars[i].name.in()); - ACE_OS::fprintf(fp," value=\"%s\"", info->env_vars[i].value.in()); + ACE_CString val = ACEXML_escape_string(info->env_vars[i].value.in()); + ACE_OS::fprintf(fp," value=\"%s\"", val.c_str()); ACE_OS::fprintf(fp,"/>\n"); } @@ -263,10 +268,10 @@ Locator_Repository::Locator_Repository() } int -Locator_Repository::init(Options::RepoMode rmode, const ACE_CString& name) +Locator_Repository::init(const Options& opts) { - this->rmode_ = rmode; - this->fname_ = name; + this->rmode_ = opts.repository_mode(); + this->fname_ = opts.persist_file_name(); int err = 0; switch (this->rmode_) { @@ -276,6 +281,10 @@ Locator_Repository::init(Options::RepoMode rmode, const ACE_CString& name) } case Options::REPO_HEAP_FILE: { + if (opts.repository_erase()) + { + ACE_OS::unlink( this->fname_.c_str() ); + } ACE_Configuration_Heap* heap = new ACE_Configuration_Heap(); this->config_.reset(heap); err = heap->open(this->fname_.c_str()); @@ -288,6 +297,13 @@ Locator_Repository::init(Options::RepoMode rmode, const ACE_CString& name) #if defined (ACE_WIN32) case Options::REPO_REGISTRY: { + if (opts.repository_erase()) + { + ACE_Configuration_Win32Registry config( HKEY_LOCAL_MACHINE ); + ACE_Configuration_Section_Key root; + config.open_section( config.root_section(), "Software\\TAO", 0, root ); + config.remove_section( root, "ImplementationRepository", 1 ); + } HKEY root = ACE_Configuration_Win32Registry:: resolve_key(HKEY_LOCAL_MACHINE, WIN32_REG_KEY); this->config_.reset(new ACE_Configuration_Win32Registry(root)); @@ -297,6 +313,10 @@ Locator_Repository::init(Options::RepoMode rmode, const ACE_CString& name) #endif case Options::REPO_XML_FILE: { + if (opts.repository_erase()) + { + ACE_OS::unlink( this->fname_.c_str() ); + } err = loadAsXML(this->fname_, *this); break; } diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h index ab23cf75dae..2ef50b5753a 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h @@ -52,7 +52,7 @@ public: Locator_Repository(); /// Initializes the Server Repository - int init (Options::RepoMode rmode, const ACE_CString& name); + int init (const Options& opts); /// Add a new server to the Repository int add_server (const ACE_CString& name, diff --git a/TAO/orbsvcs/ImplRepo_Service/README.txt b/TAO/orbsvcs/ImplRepo_Service/README.txt index 35bfe25157c..f6f8082f21b 100644 --- a/TAO/orbsvcs/ImplRepo_Service/README.txt +++ b/TAO/orbsvcs/ImplRepo_Service/README.txt @@ -509,7 +509,7 @@ The Implementation Repository supports start and stop but not pause. When the Activator is installed using ImR_Activator -c install, it is added with a dependency on a locator service. If you don't wish to also install -the locator on the same machine, then you must use the -c install_no_locator +the locator on the same machine, then you must use the -c install_no_imr option instead. @subsection serviceopts Service Options diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp index 3be1f28e5d9..c7fbddcb83e 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp @@ -128,14 +128,15 @@ TAO_IMR_i::print_usage (void) ACE_ERROR ((LM_ERROR, "Usage: tao_imr [options] command [command-arguments]\n" " where [options] are ORB options\n" " where command is one of the following:\n" - " activate Activates a server through the IR\n" - " add Add an entry to the IR\n" + " start Start a server through the ImR\n" + " add Add an entry to the ImR\n" " autostart Activates all AUTO_START servers\n" " ior Creates a simplified IOR\n" - " list List the entries in the IR\n" - " remove Remove an entry from the IR\n" - " shutdown Shuts down a server through the IR\n" - " update Update an entry in the IR\n" + " list List the entries in the ImR\n" + " remove Remove an entry from the ImR\n" + " shutdown Shut down a server through the ImR\n" + " shutdown-repo Shut down the ImR\n" + " update Update an entry in the ImR\n" " where [command-arguments] depend on the command\n")); } @@ -146,9 +147,14 @@ TAO_IMR_Op * TAO_IMR_Op::make_op (const ACE_TCHAR *op_name) { if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("activate")) == 0) + { + ACE_ERROR((LM_ERROR, "Warning: The activate option has been renamed to start.\n")); + return new TAO_IMR_Op_Activate (); + } + else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("start")) == 0) return new TAO_IMR_Op_Activate (); else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("add")) == 0) - return new TAO_IMR_Op_Add (); + return new TAO_IMR_Op_Register (true); else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("autostart")) == 0) return new TAO_IMR_Op_Autostart(); else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("ior")) == 0) @@ -159,8 +165,10 @@ TAO_IMR_Op::make_op (const ACE_TCHAR *op_name) return new TAO_IMR_Op_Remove (); else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("shutdown")) == 0) return new TAO_IMR_Op_Shutdown (); + else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("shutdown-repo")) == 0) + return new TAO_IMR_Op_ShutdownRepo (); else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("update")) == 0) - return new TAO_IMR_Op_Update (); + return new TAO_IMR_Op_Register (false); return 0; } @@ -234,22 +242,15 @@ TAO_IMR_Op::display_server_information (const ImplementationRepository::ServerIn ACE_DEBUG ((LM_DEBUG, "\n")); } - -TAO_IMR_Op_Add::TAO_IMR_Op_Add (void) -: activation_ (ImplementationRepository::NORMAL) -, retry_count_ (0) -{ - // Nothing -} - TAO_IMR_Op_List::TAO_IMR_Op_List (void) : verbose_server_information_ (0) { // Nothing } -TAO_IMR_Op_Update::TAO_IMR_Op_Update (void) -: set_command_line_ (false) +TAO_IMR_Op_Register::TAO_IMR_Op_Register (bool is_add) +: is_add_ (is_add) +, set_command_line_ (false) , set_environment_vars_(false) , set_working_dir_ (false) , set_activation_ (false) @@ -264,11 +265,11 @@ TAO_IMR_Op_Update::TAO_IMR_Op_Update (void) void TAO_IMR_Op_Activate::print_usage (void) { - ACE_ERROR ((LM_ERROR, "Activates a server\n" + ACE_ERROR ((LM_ERROR, "Starts a server using its registered Activator.\n" "\n" - "Usage: tao_imr [options] activate <name>\n" + "Usage: tao_imr [options] start <name>\n" " where [options] are ORB options\n" - " where <name> is the POA name used by the server object\n" + " where <name> is the name of a registered POA.\n" " -h Displays this\n")); } @@ -291,114 +292,7 @@ TAO_IMR_Op_Activate::parse (int argc, ACE_TCHAR **argv) while ((c = get_opts ()) != -1) switch (c) { - case 'h': // display help - this->print_usage (); - return -1; - default: - ACE_ERROR((LM_ERROR, "ERROR : Unknown option '%c'\n", (char) c)); - this->print_usage (); - return -1; - } - - return 0; -} - -void -TAO_IMR_Op_Add::addenv (ACE_TCHAR *opt) -{ - CORBA::ULong length = this->environment_vars_.length (); - - // Increase the length of the sequence - this->environment_vars_.length (length + 1); - ACE_CString tokens (opt); - int index = tokens.find ("="); - // Insert at position length since that is our new element - this->environment_vars_ [length].name = - CORBA::string_dup (tokens.substr (0, index).c_str ()); - this->environment_vars_ [length].value = - CORBA::string_dup (tokens.substr (index + 1).c_str ()); -} - -void -TAO_IMR_Op_Add::print_usage (void) -{ - ACE_ERROR ((LM_ERROR, - "Usage: tao_imr [options] add <name> [command-arguments]\n" - " where [options] are ORB options\n" - " where <name> is the POA name used by the server object\n" - " where [command-arguments] can be\n" - " -l Activator name. Defaults to local hostname.\n" - " -h Displays this\n" - " -c command Startup command\n" - " -w dir Working directory\n" - " -e name=value Set environment variables\n" - " -a mode Set activate mode (NORMAL|MANUAL|PER_CLIENT|AUTO_START)\n" - " -r count Set how many times to attempt restart. (default 0)\n")); -} - -int -TAO_IMR_Op_Add::parse (int argc, ACE_TCHAR **argv) -{ - // Check for enough arguments (we need at least one for the server name) - if (argc < 2) - { - this->print_usage (); - return -1; - } - - // Skip both the program name and the "add" command - ACE_Get_Opt get_opts (argc, argv, "hc:w:a:e:l:r:R:"); - - this->server_name_ = argv[1]; - if (this->server_name_.length() == 0 || this->server_name_[0] == '-') - { - ACE_ERROR((LM_ERROR, "ERROR : name is required.\n")); - this->print_usage (); - return -1; - } - - int c; - - while ((c = get_opts ()) != -1) - { - switch (c) - { - case 'c': // Command line arguments - this->command_line_ = get_opts.opt_arg (); - break; - case 'e': // set environment variables - this->addenv( get_opts.opt_arg () ) ; - break; - case 'w': // Working Directory - this->working_dir_ = get_opts.opt_arg (); - break; - case 'a': // Activation Mode - if (ACE_OS::strcasecmp (get_opts.opt_arg (), "NORMAL") == 0) - this->activation_ = ImplementationRepository::NORMAL; - else if (ACE_OS::strcasecmp (get_opts.opt_arg (), "MANUAL") == 0) - this->activation_ = ImplementationRepository::MANUAL; - else if (ACE_OS::strcasecmp (get_opts.opt_arg (), "PER_CLIENT") == 0) - this->activation_ = ImplementationRepository::PER_CLIENT; - else if (ACE_OS::strcasecmp (get_opts.opt_arg (), "AUTO_START") == 0) - this->activation_ = ImplementationRepository::AUTO_START; - else - ACE_ERROR_RETURN ((LM_ERROR, - "Unknown Activation Mode <%s>.\n", - get_opts.opt_arg ()), - -1); - break; - case 'l': /// hostname of the activator - this->activator_ = get_opts.optarg; - break; - case 'r': // startup/ping Retry Count - case 'R': - { - int rc = ACE_OS::atoi(get_opts.optarg); - if (rc > 0) - this->retry_count_ = rc; - } - break; - case 'h': // display help + case 'h': this->print_usage (); return -1; default: @@ -406,7 +300,6 @@ TAO_IMR_Op_Add::parse (int argc, ACE_TCHAR **argv) this->print_usage (); return -1; } - } return 0; } @@ -630,8 +523,59 @@ TAO_IMR_Op_Shutdown::parse (int argc, ACE_TCHAR **argv) return 0; } +TAO_IMR_Op_ShutdownRepo::TAO_IMR_Op_ShutdownRepo() +: activators_(false) +{ +} + +void +TAO_IMR_Op_ShutdownRepo::print_usage (void) +{ + ACE_ERROR ((LM_ERROR, "Shuts down the ImR\n" + "\n" + "Usage: tao_imr [options] shutdown-repo [-a]\n" + " where [options] are ORB options\n" + " Specify -a to also shutdown any registered ImR Activators.\n" + " -h Displays this\n")); +} + +int +TAO_IMR_Op_ShutdownRepo::parse (int argc, ACE_TCHAR **argv) +{ + // Check for enough arguments (we need at least one for the server name) + if (argc < 1) + { + this->print_usage (); + return -1; + } + + // Skip both the program name and the "shutdown-repo" command + ACE_Get_Opt get_opts (argc, argv, "ha"); + + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'h': + this->print_usage (); + return -1; + case 'a': + activators_ = true; + break; + default: + ACE_ERROR((LM_ERROR, "ERROR : Unknown option '%c'\n", (char) c)); + this->print_usage (); + return -1; + } + } + + return 0; +} + void -TAO_IMR_Op_Update::addenv (ACE_TCHAR *opt) +TAO_IMR_Op_Register::addenv (ACE_TCHAR *opt) { CORBA::ULong length = this->environment_vars_.length (); // Increase the length of the sequence @@ -646,12 +590,12 @@ TAO_IMR_Op_Update::addenv (ACE_TCHAR *opt) } void -TAO_IMR_Op_Update::print_usage (void) +TAO_IMR_Op_Register::print_usage (void) { ACE_ERROR ((LM_ERROR, - "Updates a server entry\n" + "Adds/Updates a server entry\n" "\n" - "Usage: tao_imr [options] update <name> [command-arguments]\n" + "Usage: tao_imr [options] <add|update> <name> [command-arguments]\n" " where [options] are ORB options\n" " where <name> is the POA name used by the server object\n" " where [command-arguments] can be\n" @@ -665,7 +609,7 @@ TAO_IMR_Op_Update::print_usage (void) } int -TAO_IMR_Op_Update::parse (int argc, ACE_TCHAR **argv) +TAO_IMR_Op_Register::parse (int argc, ACE_TCHAR **argv) { // Check for enough arguments (we need at least one for the server name) if (argc < 2) @@ -782,76 +726,6 @@ TAO_IMR_Op_Activate::run (void) } int -TAO_IMR_Op_Add::run (void) -{ - ACE_ASSERT(! CORBA::is_nil(imr_)); - - ImplementationRepository::StartupOptions startup_options; - - startup_options.command_line = - CORBA::string_dup (this->command_line_.c_str ()); - startup_options.environment = - this->environment_vars_; - startup_options.working_directory = - CORBA::string_dup (this->working_dir_.c_str ()); - startup_options.activation = this->activation_; - startup_options.start_limit = this->retry_count_ + 1; - - if (this->activator_.length() != 0) - { - startup_options.activator = CORBA::string_dup (this->activator_.c_str ()); - } - else - { - // else use the hostname on which tao_imr is run - char host_name[MAXHOSTNAMELEN + 1]; - ACE_OS::hostname (host_name, MAXHOSTNAMELEN); - startup_options.activator = CORBA::string_dup (host_name); - } - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - this->imr_->register_server (this->server_name_.c_str (), - startup_options ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG ((LM_DEBUG, - "Successfully registered server <%s>\n", - this->server_name_.c_str ())); - } - ACE_CATCH (ImplementationRepository::NotFound, ex) - { - ACE_ERROR ((LM_ERROR, - "Could not register server <%s>. Activator <%s> not found.\n", - this->server_name_.c_str (), - this->activator_.c_str() - )); - return TAO_IMR_Op::ALREADY_REGISTERED; - } - ACE_CATCH (ImplementationRepository::AlreadyRegistered, ex) - { - ACE_ERROR ((LM_ERROR, - "Server <%s> already registered.\n", - this->server_name_.c_str ())); - return TAO_IMR_Op::ALREADY_REGISTERED; - } - ACE_CATCH (CORBA::NO_PERMISSION, ex) - { - ACE_ERROR ((LM_ERROR, "No Permission: ImplRepo is in Locked mode\n")); - return TAO_IMR_Op::NO_PERMISSION; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Adding server"); - return TAO_IMR_Op::UNKNOWN; - } - ACE_ENDTRY; - - return TAO_IMR_Op::NORMAL; -} - -int TAO_IMR_Op_Autostart::run (void) { ACE_ASSERT(! CORBA::is_nil(imr_)); @@ -1106,11 +980,41 @@ TAO_IMR_Op_Shutdown::run (void) } int -TAO_IMR_Op_Update::run (void) +TAO_IMR_Op_ShutdownRepo::run (void) +{ + ACE_ASSERT(! CORBA::is_nil(imr_)); + + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + bool servers = false; // not implemented yet, if ever + this->imr_->shutdown(activators_, servers ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "ImR shutdown initiated.\n")); + } + ACE_CATCH(CORBA::TIMEOUT, ex) + { + ACE_DEBUG ((LM_DEBUG, "Timeout waiting for ImR shutdown.\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Shutting Down ImR"); + return TAO_IMR_Op::UNKNOWN; + } + ACE_ENDTRY; + + return TAO_IMR_Op::NORMAL; +} + +int +TAO_IMR_Op_Register::run (void) { ACE_ASSERT(! CORBA::is_nil(imr_)); ImplementationRepository::ServerInformation_var server_information; + ImplementationRepository::StartupOptions local; + ImplementationRepository::StartupOptions* options = NULL; ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY @@ -1119,42 +1023,51 @@ TAO_IMR_Op_Update::run (void) server_information.out() ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Conditionally update the startup options + if (server_name_ == server_information->server.in()) + { + if (is_add_) + { + ACE_DEBUG((LM_DEBUG, "Server <%s> already registered.\n", this->server_name_.c_str())); + return ALREADY_REGISTERED; + } + options = &server_information->startup; + } + else + { + is_add_ = true; + options = &local; + } + if (this->set_command_line_) - server_information->startup.command_line = - CORBA::string_dup (this->command_line_.c_str ()); + options->command_line = CORBA::string_dup (this->command_line_.c_str ()); if (this->set_environment_vars_) - server_information->startup.environment = this->environment_vars_; + options->environment = this->environment_vars_; if (this->set_working_dir_) - server_information->startup.working_directory = CORBA::string_dup (this->working_dir_.c_str ()); + options->working_directory = CORBA::string_dup (this->working_dir_.c_str ()); - if (this->set_activation_) - server_information->startup.activation = this->activation_; + if (this->set_activation_ || is_add_) + options->activation = this->activation_; - if (this->set_retry_count_) - server_information->startup.start_limit = this->retry_count_ + 1; + if (this->set_retry_count_ || is_add_) + options->start_limit = this->retry_count_ + 1; if (this->set_activator_) - server_information->startup.activator = CORBA::string_dup(this->activator_.c_str()); - - this->imr_->reregister_server (this->server_name_.c_str (), - server_information->startup - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG((LM_DEBUG, "Successfully updated <%s>.\n", this->server_name_.c_str ())); - } - ACE_CATCH (ImplementationRepository::NotFound, ex) { - ACE_ERROR ((LM_ERROR, "Could not find server <%s>\n", this->server_name_.c_str ())); - return TAO_IMR_Op::NOT_FOUND; + options->activator = CORBA::string_dup(this->activator_.c_str()); } - ACE_CATCH (ImplementationRepository::AlreadyRegistered, ex) + else if (is_add_) { - ACE_ERROR ((LM_ERROR, "Can't change the Activator for <%s>.\n", this->server_name_.c_str ())); - return TAO_IMR_Op::NORMAL; + char host_name[MAXHOSTNAMELEN + 1]; + ACE_OS::hostname (host_name, MAXHOSTNAMELEN); + options->activator = CORBA::string_dup (host_name); + } + + this->imr_->add_or_update_server (this->server_name_.c_str (), *options ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG((LM_DEBUG, "Successfully registered <%s>.\n", this->server_name_.c_str ())); } ACE_CATCH (CORBA::NO_PERMISSION, ex) { diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h index f2fe1710355..df728e7002e 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h @@ -135,52 +135,6 @@ protected: ACE_CString server_name_; }; - -/** - * @class TAO_IMR_Op_Add - * - * @brief Add Operation - * - * Add is used to register information about a server with the IMR. - */ -class TAO_IMR_Op_Add : public TAO_IMR_Op -{ -public: - TAO_IMR_Op_Add (void); - - virtual int parse (int argc, ACE_TCHAR **argv); - virtual int run (void); - -protected: - /// Sets one of the environment variables - void addenv (ACE_TCHAR *opt); - - /// Prints a message about the usage. - void print_usage (void); - - /// POA server name. - ACE_CString server_name_; - - /// Command line. - ACE_CString command_line_; - - /// Environment Variables. - ImplementationRepository::EnvironmentList environment_vars_; - - /// Working directory. - ACE_CString working_dir_; - - /// Activation mode (0 = NORMAL, 1 = MANUAL, 2 = PER_CLIENT, 3 = AUTO_START) - ImplementationRepository::ActivationMode activation_; - - /// Hostname where the activator is running. - ACE_CString activator_; - - /// startup/ping Retry Count - int retry_count_; -}; - - /** * @class TAO_IMR_Op_Autostart * @@ -300,24 +254,43 @@ protected: ACE_CString server_name_; }; +/** + * Shutdown the ImR and optionally any registered activators. + */ +class TAO_IMR_Op_ShutdownRepo : public TAO_IMR_Op +{ +public: + TAO_IMR_Op_ShutdownRepo(); + virtual int parse (int argc, ACE_TCHAR **argv); + virtual int run (void); + +protected: + void print_usage (void); + + bool activators_; +}; /** - * @class TAO_IMR_Op_Update + * @class TAO_IMR_Op_Register * - * @brief Update Operation + * @brief Register Operation * - * Update is used to update the information for a server registered + * Register is used to update/add information for a server * with the IMR. */ -class TAO_IMR_Op_Update : public TAO_IMR_Op +class TAO_IMR_Op_Register : public TAO_IMR_Op { public: - TAO_IMR_Op_Update(void); + TAO_IMR_Op_Register(bool is_add); virtual int parse (int argc, ACE_TCHAR **argv); virtual int run (void); protected: + + /// Enables pre-registration checks + bool is_add_; + /// Sets one environment variable. void addenv (ACE_TCHAR *opt); diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Advanced.mpc b/TAO/orbsvcs/examples/ImR/Advanced/Advanced.mpc new file mode 100644 index 00000000000..9d611e4a943 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Advanced.mpc @@ -0,0 +1,39 @@ +//$Id$ +project(*Manager): orbsvcsexe, portableserver { + requires += exceptions + Source_Files { + manager_main.cpp + Manager_i.cpp + } + Documentation_Files { + Advanced.mpc + run_test.pl + README + drivers/* + } +} + +project(*Server): orbsvcsexe, portableserver, iortable { + requires += exceptions + Source_Files { + server_main.cpp + TestServer.cpp + ManagerC.cpp + MessengerS.cpp + MessengerC.cpp + Messenger_i.cpp + } +} + +project(*Client): orbsvcsexe { + requires += exceptions + Source_Files { + client_main.cpp + TestClient.cpp + MessengerC.cpp + } + verbatim(gnuace, macros) { + VDIR := .obj/Client/ + } + +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Manager.idl b/TAO/orbsvcs/examples/ImR/Advanced/Manager.idl new file mode 100644 index 00000000000..3b01e2ff7e3 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Manager.idl @@ -0,0 +1,9 @@ +//$Id$ +interface Manager +{ + long registerServer(); + + void startRetry(in long count); + + long endRetry(); // returns unused attempts +}; diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.cpp b/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.cpp new file mode 100644 index 00000000000..7a03c0c7de4 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.cpp @@ -0,0 +1,39 @@ +// -*- C++ -*- +// +// $Id$ +#include "Manager_i.h" + +Manager_i::Manager_i (long retryCount) +: server_instance_(0) +, retry_count_(retryCount) +, retry_attempt_(0) +{ +} + +Manager_i::~Manager_i (void) +{ +} + +CORBA::Long Manager_i::registerServer () +ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (retry_attempt_ < retry_count_) + { + ++retry_attempt_; + return -1; + } + return ++server_instance_; +} + +void Manager_i::startRetry (CORBA::Long count) +ACE_THROW_SPEC ((CORBA::SystemException)) +{ + retry_count_ = count; + retry_attempt_ = 0; +} + +CORBA::Long Manager_i::endRetry () +ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return retry_count_ - retry_attempt_; +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.h b/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.h new file mode 100644 index 00000000000..5f865cd0d65 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Manager_i.h @@ -0,0 +1,39 @@ +// -*- C++ -*- +// +// $Id$ +#ifndef MANAGERI_H_ +#define MANAGERI_H_ + +#include "ManagerS.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class Manager_i + : public virtual POA_Manager + , public virtual PortableServer::RefCountServantBase +{ +public: + Manager_i (long retryCount); + + virtual ~Manager_i (void); + + virtual CORBA::Long registerServer () + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void startRetry (CORBA::Long count) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Long endRetry () + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + + long server_instance_; + long retry_count_; + long retry_attempt_; +}; + + +#endif /* MANAGERI_H_ */ diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Messenger.idl b/TAO/orbsvcs/examples/ImR/Advanced/Messenger.idl new file mode 100644 index 00000000000..421512c8587 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Messenger.idl @@ -0,0 +1,6 @@ +//$Id$ +interface Messenger +{ + long send_message(in long thread, in long iter, in long obj, in long req); + oneway void shutdownOrb(); +}; diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Messenger_i.cpp b/TAO/orbsvcs/examples/ImR/Advanced/Messenger_i.cpp new file mode 100644 index 00000000000..235c97a6b6a --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Messenger_i.cpp @@ -0,0 +1,41 @@ +// -*- C++ -*- +// +// $Id$ + +#include "Messenger_i.h" + +#include <ace/streams.h> + +Messenger_i::Messenger_i (CORBA::ORB_ptr orb, long instance) +: instance_(instance) +, orb_(CORBA::ORB::_duplicate(orb)) +, isHit_(false) +{ +} + +Messenger_i::~Messenger_i (void) +{ +} + +bool Messenger_i::acknowledgeHit() +{ + bool isHit = isHit_; + isHit_ = false; + return isHit; +} + +CORBA::Long Messenger_i::send_message (CORBA::Long thread, + CORBA::Long iter, + CORBA::Long obj, + CORBA::Long req) ACE_THROW_SPEC ((CORBA::SystemException)) +{ + cout << "* Invoked: (" << instance_ << "." << thread << "." << iter + << "." << obj << "." << req << ")" << endl; + isHit_ = true; + return instance_; +} + +void Messenger_i::shutdownOrb () ACE_THROW_SPEC ((CORBA::SystemException)) +{ + orb_->shutdown(0); +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/Messenger_i.h b/TAO/orbsvcs/examples/ImR/Advanced/Messenger_i.h new file mode 100644 index 00000000000..e0c39319f28 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/Messenger_i.h @@ -0,0 +1,40 @@ +// -*- C++ -*- +// +// $Id$ +#ifndef MESSENGERI_H_ +#define MESSENGERI_H_ + +#include "MessengerS.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class Messenger_i : public virtual POA_Messenger, public virtual PortableServer::RefCountServantBase +{ +public: + Messenger_i (CORBA::ORB_ptr orb, long instance); + + virtual ~Messenger_i (void); + + virtual + CORBA::Long send_message ( + ::CORBA::Long thread, + ::CORBA::Long iter, + ::CORBA::Long obj, + ::CORBA::Long req + ) ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdownOrb () + ACE_THROW_SPEC ((CORBA::SystemException)); + + bool acknowledgeHit(); + +private: + long instance_; + CORBA::ORB_var orb_; + bool isHit_; +}; + + +#endif /* MESSENGERI_H_ */ diff --git a/TAO/orbsvcs/examples/ImR/Advanced/README b/TAO/orbsvcs/examples/ImR/Advanced/README new file mode 100644 index 00000000000..08a1a004523 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/README @@ -0,0 +1,37 @@ +This example tests several uses of the Implementation Repository. + +How to Run +---------- + +Create driver files: +------------------------------------------------------ +Driver files are stored in the drivers directory. +Each file contains a set of parameters for each execution of the +test. + +Each line item in the file has one of the follow forms. +Empty lines are ignored. + + # <Comment> + begin + <param>=<value> + do <command> + - <Disabled Line> + -- (Begin/End Disabled Block) + +* Comment lines are printed to standard-out. +* 'begin' resets all parameters to default and clears temporary files. +* Parameter assignments override the default values. +* 'do' executes the specified command + - There are three predefined use-case commands + * use_invocation + * use_persistence + * use_environment + - All methods in run-test can be executed with the do command +* Disabled lines are ignored +* The -- designates the begin and end of a block of lines to ignore + +Execute the example script +---------------------------------------------------------------------- +The run_test.pl script reads the driver file and executes each line. +Simply execute run_test.pl to run all test in the drivers directory. diff --git a/TAO/orbsvcs/examples/ImR/Advanced/TestClient.cpp b/TAO/orbsvcs/examples/ImR/Advanced/TestClient.cpp new file mode 100644 index 00000000000..f32b8af10de --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/TestClient.cpp @@ -0,0 +1,255 @@ +//$Id$ +#include "TestClient.h" +#include "MessengerC.h" + +#include "tao/ORB_Constants.h" + +#include "ace/OS_NS_time.h" +#include "ace/OS_NS_unistd.h" +#include "ace/OS_NS_stdlib.h" +#include "ace/Get_Opt.h" +#include "ace/streams.h" + +using std::string; + +TestClient::TestClient(CORBA::ORB_ptr orb, int argc, char* argv[]) +: orb_(CORBA::ORB::_duplicate(orb)) +, pauseType_('s') +, startupPause_(0) +, threadCount_(0) +, instance_(0) +, iterations_(0) +, requestCount_(0) +, randomRequests_(false) +, shutdownOrb_(false) +, expectHolding_(false) +, expectNoProfile_(false) +{ + parseCommands(argc, argv); +} + +TestClient::~TestClient() +{ +} + +int TestClient::parseCommands(int argc, char* argv[]) +{ + ACE_Get_Opt get_opts(argc, argv, "s:t:i:r:x:e:z:"); + int c; + while ((c = get_opts()) != -1) + { + switch (c) + { + case 's': + startupPause_ = ::atoi(get_opts.opt_arg()); + break; + + case 't': + threadCount_ = ::atoi(get_opts.opt_arg()); + break; + + case 'i': + iterations_ = ::atoi(get_opts.opt_arg()); + break; + + case 'r': + { + const char* opt = get_opts.opt_arg(); + if (opt[0] == 'r') { randomRequests_ = true; opt++; } + requestCount_ = ::atoi(opt); + break; + } + + case 'x': + { + const char* opt = get_opts.opt_arg(); + shutdownOrb_ = (opt && opt[0] != '0'); + break; + } + + case 'e': + { + const char* opt = get_opts.opt_arg(); + while (opt && *opt != '\0') + { + if (*opt == 'h') expectHolding_ = true; + else if (*opt == 'n') expectNoProfile_ = true; + opt++; + } + break; + } + + case 'z': + pauseType_ = get_opts.opt_arg()[0]; + break; + + case '?': + default: + ACE_ERROR_RETURN((LM_ERROR, + "usage: %s\n" + "\t-s <startup pause in milliseconds>\n" + "\t-t <number of threads>\n" + "\t-i <number of iterations per thread>\n" + "\t-r <r><number of requests per string_to_object>\n" + "\t-x 'shutdown server orb at end of a string_to_object'\n" + "\t-e <h><n> 'catch holding or no profile exceptions'\n" + "\n", + argv[0]), + -1); + } + } + return 0; +} + +void TestClient::pause(int milliseconds) +{ + if (milliseconds > 0) + { + if (pauseType_ == 's') + { + ACE_OS::sleep(ACE_Time_Value(0, milliseconds * 1000)); + } + else if (pauseType_ == 'r') + { + ACE_Time_Value tv(0, milliseconds * 1000); + orb_->run(tv); + } + } +} + +void TestClient::run() +{ + cout << "Starting Client." << endl; + pause(startupPause_); + cout << "* Client started." << endl; + + buildIORList(); + + if (this->activate(THR_NEW_LWP, threadCount_) == -1) + { + ACE_ERROR((LM_ERROR, "%p\n", "activate failed")); + } + wait(); + + cout << "* Client ended." << endl; +} + +void TestClient::buildIORList() +{ + // Read in the strigified object references into an array + ifstream iorFile("imr_test.ior"); + while (true) + { + string ior; + iorFile >> ior; + if (ior.empty() == false) + iors_.push_back(ior); + else + break; + } +} + +int TestClient::svc() +{ + // Every invocation of svc increates the thread count + instance_++; + int threadNum = instance_; + cout << "* Client Thread started (" << threadNum << "." << iterations_ + << "." << iors_.size() << "." << requestCount_ << ")" << endl; + + int i = 0; + size_t objIter = 0; + int requestIter = 0; + + string currentIOR; + + ACE_OS::srand(ACE_OS::time()); + + try + { + int holdingCount = 0; + int noProfileCount = 0; + + // For each iteration + for (i = 1; i <= iterations_; i++) + { + // For each object reference read from file + for (objIter = 1; objIter <= iors_.size(); objIter++) + { + requestIter = -1; + // Get a imr_test_var + currentIOR = iors_[objIter - 1]; + CORBA::Object_var obj = orb_->string_to_object(currentIOR.c_str()); + if (CORBA::is_nil(obj.in()) == false) + { + requestIter = 0; + Messenger_var test = Messenger::_narrow(obj.in()); + + if (CORBA::is_nil(test.in()) == false) + { + // Calculate the number of requests + int newReqCount (randomRequests_ == false ? requestCount_ : + (int)((((double)ACE_OS::rand() / (double)RAND_MAX) * (double)(requestCount_ - 1)) + .5) + 1); + int serverInstance = 0; + // For each request + for (requestIter = 1; requestIter <= newReqCount; requestIter++) + { + try + { + serverInstance = test->send_message(threadNum, i, objIter, requestIter); + } + catch (CORBA::SystemException& ex) + { + // If these exceptions are expected record the number of instances, otherwise rethrow + if (expectHolding_ == true && ex.minor() == TAO_POA_HOLDING) + { + cout << "Caught expected holding exception with (" + << threadNum << "." << objIter << "." << requestIter << ") " << endl; + holdingCount++; + } + else + { + throw; + } + if (expectNoProfile_ == true + && ex.minor() == TAO_INVOCATION_SEND_REQUEST_MINOR_CODE) + { + cout << "Caught expected no profile exception with (" + << threadNum << "." << objIter << "." << requestIter << ") " << endl; + noProfileCount++; + } + else + { + throw; + } + } // catch + } // for request + // We are done with our non-nil narrowed obj ref + if (shutdownOrb_ == true) test->shutdownOrb(); + } // if narrow + } // if obj + } // for obj + } // for iter + // Report expected exceptions + if (holdingCount > 0) + { + cout << "Client thread " << threadNum << " received " + << holdingCount << " holding error(s)." << endl; + } + + if (noProfileCount > 0) + { + cout << "Client thread " << threadNum << " received " + << noProfileCount << " no profile error(s)." << endl; + } + + return 0; + } // try + catch (CORBA::Exception& ex) + { + cerr << "CORBA client error with (" << threadNum << "." << i + << "." << objIter << "." << requestIter << "):" << currentIOR << endl; + ACE_PRINT_EXCEPTION(ex, ""); + } + return 1; +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/TestClient.h b/TAO/orbsvcs/examples/ImR/Advanced/TestClient.h new file mode 100644 index 00000000000..d2f989111cc --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/TestClient.h @@ -0,0 +1,37 @@ +//$Id$ +#include "tao/ORB.h" + +#include "ace/Task.h" + +#include <vector> +#include <string> + +class TestClient : public ACE_Task_Base +{ +public: + TestClient(CORBA::ORB_ptr orb, int argc, char* argv[]); + + virtual ~TestClient(); + + void run(); + +private: + int parseCommands(int argc, char* argv[]); + void buildIORList(); + void pause(int milliseconds); + virtual int svc(); + + CORBA::ORB_var orb_; + std::vector<std::string> iors_; + + char pauseType_; + int startupPause_; + int threadCount_; + int instance_; + int iterations_; + int requestCount_; + bool randomRequests_; + bool shutdownOrb_; + bool expectHolding_; + bool expectNoProfile_; +}; diff --git a/TAO/orbsvcs/examples/ImR/Advanced/TestServer.cpp b/TAO/orbsvcs/examples/ImR/Advanced/TestServer.cpp new file mode 100644 index 00000000000..96a8d61092c --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/TestServer.cpp @@ -0,0 +1,525 @@ +//$Id$ +#include "TestServer.h" + +#include "ManagerC.h" + +#include "tao/Profile.h" +#include "tao/Stub.h" +#include "tao/ORB_Core.h" + +#include "ace/streams.h" +#include "ace/OS_NS_unistd.h" +#include "ace/OS_NS_string.h" +#include "ace/OS_NS_ctype.h" +#include "ace/os_include/os_ctype.h" +#include "ace/Get_Opt.h" + +#include <sstream> +#include <utility> + +using std::string; + +// Does this function already exist? +// Is there a path class? + +string normalizePath(const string& dir, char delim = '/', bool toLower = false); +string getWorkingPath(char delim = '/', bool toLower = false); + +string deleteLeaf(const string& dir) +{ + string temp = dir; + temp.resize(dir.find_last_of("/\\")); + return temp; +} + +string getWorkingPath(char delim, bool toLower) +{ + char buffer[PATH_MAX + 2]; + ACE_OS::getcwd(buffer, PATH_MAX); + return normalizePath(buffer, delim, toLower); +} + +string normalizePath(const string& dir, char delim, bool toLower) +{ + if (dir.empty() == true) return string(); + char buffer[PATH_MAX + 2]; + + string::size_type i = 0; + + for (; ACE_OS::ace_isspace(dir[i]); i++); + + string::size_type begin = i; + + int j = 0; + for (; i < dir.size(); i++) + { + if (dir[i] == '\\' || dir[i] == '/') + { + // skip redundant + if (dir[i + 1] == '\\' || dir[i + 1] == '/') + { + } + // Convert to proper delim + else + { + buffer[j] = delim; j++; + } + } + else if (dir[i] == '.') + { + // If specifying current, skip + if (dir[i + 1] == '\\' || dir[i + 1] == '/' || dir[i + 1] == '\0') + { + if (i == begin) // relative start + { + string curDir = getWorkingPath(); + ACE_OS::strncpy(buffer, curDir.c_str(), sizeof(buffer)); + j = curDir.length(); + } + else + { + i += 2; + } + } + // If specifying parent, go back + else if (dir[i + 1] == '.') + { + if (i == begin) // relative start + { + string curDir = getWorkingPath(); + ACE_OS::strncpy(buffer, curDir.c_str(), sizeof(buffer)); + j = curDir.length(); + } + int k = j; + for (; buffer[k] != delim; k--); + k--; + for (; buffer[k] != delim; k--); + j = (k + 1); + i+=2; + } + else + { + if (toLower) + buffer[j] = ::tolower(dir[i]); + else + buffer[j] = dir[i]; + j++; + } + } + // normal character + else + { + if (toLower) + buffer[j] = ::tolower(dir[i]); + else + buffer[j] = dir[i]; + j++; + } + } + + if (buffer[j - 1] == delim) j--; + buffer[j] ='\0'; + return buffer; +} + +TestServer::TestServer(CORBA::ORB_ptr orb, int argc, char* argv[]) +: serverID_(1) +, serverInstanceID_(-1) +, useIORTable_(false) +, writeIORFile_(false) +, retryQuery_(false) +, pauseType_('s') +, startupPause_(0) +, objActivatePause_(0) +, activatePause_(0) +, runPause_(0) +, numPOAS_(0) +, numObjsPerPOA_(0) +, useItLoseItSecs_(0) +, orb_(CORBA::ORB::_duplicate(orb)) +, iorTable_(IORTable::Table::_nil()) +, root_(PortableServer::POA::_nil()) +, mgr_(PortableServer::POAManager::_nil()) +{ + parseCommands(argc, argv); + + verifyEnvironment(); + + // We really do not want the current directory set by the + // activator. baseDir_ is where all the operation files are. + if (baseDir_.empty() == false) + { + ACE_OS::chdir(baseDir_.c_str()); + } +} + +TestServer::~TestServer() +{ + root_->destroy(1, 1); +} + +// TestServer::parseCommands +// Reads params from command line +// +int TestServer::parseCommands(int argc, char* argv[]) +{ + ACE_Get_Opt get_opts(argc, argv, "w:e:d:t:o:s:c:a:r:p:n:x:z:q:b:"); + int c; + while ((c = get_opts()) != -1) + { + switch (c) + { + case 'w': + expectedDir_ = normalizePath(get_opts.opt_arg()); + break; + + case 'e': + { + string name = get_opts.opt_arg(); + string::size_type i = name.find_first_of("="); + string value = name.substr(i + 1, name.length() - 1); + name.resize(i); + expectedEnv_.push_back(std::make_pair(name, value)); + break; + } + + case 'd': + serverID_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 't': + { + const char* opt = get_opts.opt_arg(); + useIORTable_ = (opt && opt[0] != '0'); + break; + } + + case 'q': + { + const char* opt = get_opts.opt_arg(); + retryQuery_ = (opt && opt[0] != '0'); + break; + } + + case 'o': + { + const char* opt = get_opts.opt_arg(); + writeIORFile_ = (opt && opt[0] != '0'); + break; + } + + case 's': + startupPause_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'c': + objActivatePause_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'a': + activatePause_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'r': + runPause_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'p': + numPOAS_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'n': + numObjsPerPOA_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'x': + useItLoseItSecs_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + + case 'z': + pauseType_ = get_opts.opt_arg()[0]; + break; + + case 'b': + baseDir_ = get_opts.opt_arg(); + break; + + case '?': + default: + ACE_ERROR_RETURN((LM_ERROR, + "usage: %s\n" + "\t-d <startup pause in milliseconds>\n" + "\t-t 'use IOR Table'\n" + "\t-o 'write the IOR file'\n" + "\t-s <startup pause in milliseconds>\n" + "\t-a <activation pause in milliseconds>\n" + "\t-r <run pause in milliseconds>\n" + "\t-p <number of POAS>\n" + "\t-n <number of objects per POA>\n" + "\t-x <number of seconds from last hit till exit>\n" + "\t-e <expected_env_var_name>=<value> 'can be repeated'\n" + "\t-w <expected_working_directory>\n" + "\n", + argv[0]), + -1); + } + } + return 0; +} + +// TestServer::verifyEnvironment +// Checks to see if the activator setup requested env vars and current directory +// +bool TestServer::verifyEnvironment() const +{ + bool err = false; + + // Check paths + string currentDir = getWorkingPath(); + if (expectedDir_.empty() == false && currentDir != expectedDir_) + { + cout << "Error: directory paths (" + << currentDir << ", " << expectedDir_ + << ") do not match." << endl; + err |= true; + } + + // Check env vars + for (string::size_type i = 0; i < expectedEnv_.size(); i++) + { + const char* realValue = ACE_OS::getenv(expectedEnv_[i].first.c_str()) ; + if (realValue == NULL) + { + cout << "Error: env variable '" + << expectedEnv_[i].first + << "' not found." << endl; + err |= true; + } + else if (expectedEnv_[i].second != realValue) + { + cout << "Error: env variable '" << expectedEnv_[i].first << "' values (" + << realValue << ", " << expectedEnv_[i].second + << ") do not match." << endl; + err |= true; + } + } + + return (err ? 1 : 0); +} + +// TestServer::pause +// Pause processing by either sleep or timed run-loop +// +void TestServer::pause(int milliseconds) +{ + if (milliseconds > 0) + { + if (pauseType_ == 's') + { + ACE_OS::sleep(ACE_Time_Value(0, milliseconds * 1000)); + } + else if (pauseType_ == 'r') + { + ACE_Time_Value tv(0, milliseconds * 1000); + orb_->run(tv); + } + else + { + ACE_ASSERT(pauseType_ == 'r'); + } + } +} + +// TestServer::pause +// Pause processing by either sleep or timed run-loop +// +void TestServer::run() +{ + // Startup + pause(startupPause_); + + // Resolve initial references + CORBA::Object_var obj = orb_->resolve_initial_references("RootPOA"); + root_ = PortableServer::POA::_narrow(obj.in()); + mgr_ = root_->the_POAManager(); + + // Register w/ the manager + if (registerWithManager() == false) + return; + + cout << "* Server (" << serverID_ << "." << serverInstanceID_ << ") started." << endl; + + // Create IOR Table + if (useIORTable_ == true) + { + CORBA::Object_var obj = orb_->resolve_initial_references("IORTable"); + iorTable_ = IORTable::Table::_narrow(obj.in()); + } + + // Build Servant + servant_.reset(new Messenger_i(orb_.in(), serverInstanceID_)); + + // Buile the POAs and Objs + buildObjects(); + + // Activate + pause(activatePause_); + mgr_->activate(); + + // Run with a timeout for activity + if (useItLoseItSecs_ > 0) + { + pause(runPause_); + do + { + ACE_Time_Value tv(useItLoseItSecs_); + orb_->run(tv); + } while (orb_->orb_core()->has_shutdown() == 0 + && servant_->acknowledgeHit()); + } + + // Report shutdown + if (orb_->orb_core()->has_shutdown() != 0) + { + cout << "* Server (" << serverID_ << "." + << serverInstanceID_ << ") ended." << endl; + } + else + { + cout << "* Server (" << serverID_ << "." + << serverInstanceID_ << ") self terminated." << endl; + } +} + +// TestServer::registerServer +// This will register the server with the manager. +// +bool TestServer::registerWithManager() +{ + // So-far, the use cases dictate writting IOR + // responsibility is exclusive of registering + if (writeIORFile_ == false) + { + // Get the manager's ref + CORBA::Object_var obj = orb_->string_to_object("file://manager.ior"); + if (CORBA::is_nil(obj.in())) + { + cerr << "Server Error: Could not get Manager IOR." << endl; + return false; + } + Manager_var manager = Manager::_narrow(obj.in()); + if (CORBA::is_nil(manager.in())) { + cerr << "Server Error: IOR was not a Manager object reference." << endl; + return false; + } + + // If this is a query process + if (retryQuery_ == true) + { + int diff = manager->endRetry(); + if (diff != 0) + { + cout << "* Server Error: Not all retry attempts were made." << endl; + } + return false; + } + else // Get the server ID + { + serverInstanceID_ = manager->registerServer(); + if (serverInstanceID_ == -1) + { + cout << "* Server (" << serverID_ << "." + << serverInstanceID_ << ") could not register." << endl; + return false; + } + } + } + return true; +} + +// TestServer::buildObjects +// Builds all the objects required by the client and server +// Writes IORs if requested +// +void TestServer::buildObjects() +{ + // Append to existing file + ofstream iorFile("imr_test.ior", ios::app); + + // Create number of requested POAS + for (int i = 0; i < numPOAS_; i++) + { + CORBA::PolicyList policies(3); + policies.length(3); + policies[0] = root_->create_id_assignment_policy(PortableServer::USER_ID); + policies[1] = root_->create_id_uniqueness_policy(PortableServer::MULTIPLE_ID); + policies[2] = root_->create_lifespan_policy(PortableServer::PERSISTENT); + + // Create a POA + string poaName; + { + std::stringstream poaStream; + poaStream << "POA_" << serverID_ << "_" << (i + 1); + poaName = poaStream.str(); + } + + cout << "* Creating POA: " << poaName << endl; + + PortableServer::POA_var sub_poa = root_->create_POA(poaName.c_str(), mgr_.in(), policies); + + pause(objActivatePause_); + // Create number of requested object references + for (int j = 0; j < numObjsPerPOA_; j++) + { + // Create object reference and activate it + string objName; + { + std::stringstream objStream; + objStream << "OBJ_" << serverID_ << "_" << (i + 1) << "_" << (j + 1); + objName = objStream.str(); + } + cout << "* Activating Obj: " << objName << endl; + + PortableServer::ObjectId_var oid = PortableServer::string_to_ObjectId(objName.c_str()); + sub_poa->activate_object_with_id(oid.in(), servant_.get()); + + // Output the stringified ID to the file for the client + if (! useIORTable_) + { + if (writeIORFile_) + { + // Write out IOR + CORBA::Object_var obj = sub_poa->id_to_reference(oid.in()); + CORBA::String_var ior = orb_->object_to_string(obj.in()); + iorFile << ior.in () << endl; + } + } + else // use IOR table + { + // Write out corbaloc + TAO_POA* tmp_poa = sub_poa->_tao_poa_downcast(); + // Make entry into ior table using the non IMRified object ref. + CORBA::Object_var obj = tmp_poa->id_to_reference(oid.in(), false); + CORBA::String_var ior = orb_->object_to_string(obj.in()); + string key = (poaName + "/" + objName); + iorTable_->bind(key.c_str(), ior.in()); + + if (writeIORFile_) + { + // Use the IMRified object ref to create the corbaloc. + CORBA::Object_var obj = sub_poa->id_to_reference(oid.in()); + + // Create a corbaloc + TAO_Profile* profile = obj->_stubobj()->profile_in_use(); + CORBA::String_var temp = profile->to_string(); + string corbaloc = temp.in(); + corbaloc.resize(corbaloc.find_first_of(profile->object_key_delimiter()) + 1); + corbaloc += key; + + // Write out corbaloc + iorFile << corbaloc << endl; + } + } + } + } +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/TestServer.h b/TAO/orbsvcs/examples/ImR/Advanced/TestServer.h new file mode 100644 index 00000000000..261b37c35e3 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/TestServer.h @@ -0,0 +1,51 @@ +//$Id$ +#include "Messenger_i.h" + +#include "ace/Auto_Ptr.h" + +#include "tao/IORTable/IORTable.h" +#include "tao/PortableServer/POA.h" + +#include <string> +#include <vector> + +class TestServer +{ +public: + TestServer(CORBA::ORB_ptr, int argc, char* argv[]); + + ~TestServer(); + + void run(); + +private: + int parseCommands(int argc, char* argv[]); + bool verifyEnvironment() const; + bool registerWithManager(); + void buildObjects(); + void pause(int milliseconds); + + int serverID_; + int serverInstanceID_; + bool useIORTable_; + bool writeIORFile_; + bool retryQuery_; + char pauseType_; + int startupPause_; + int objActivatePause_; + int activatePause_; + int runPause_; + int numPOAS_; + int numObjsPerPOA_; + int useItLoseItSecs_; + + std::string baseDir_; + std::string expectedDir_; + std::vector<std::pair<std::string, std::string> > expectedEnv_; + ACE_Auto_Ptr<Messenger_i> servant_; + + CORBA::ORB_var orb_; + IORTable::Table_var iorTable_; + PortableServer::POA_var root_; + PortableServer::POAManager_var mgr_; +}; diff --git a/TAO/orbsvcs/examples/ImR/Advanced/client_main.cpp b/TAO/orbsvcs/examples/ImR/Advanced/client_main.cpp new file mode 100644 index 00000000000..bcebff9a94f --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/client_main.cpp @@ -0,0 +1,25 @@ +//$Id$ +#include "TestClient.h" + +#include <ace/streams.h> + +int main(int argc, char* argv[]) +{ + try + { + CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); + + { + TestClient client(orb.in(), argc, argv); + client.run(); + } + + orb->destroy(); + return 0; + } + catch (CORBA::Exception& ex) + { + cerr << "TestClient: " << ex << endl; + } + return 1; +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/all b/TAO/orbsvcs/examples/ImR/Advanced/drivers/all new file mode 100644 index 00000000000..d4a342bc676 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/all @@ -0,0 +1,6 @@ +# All Tests +run invocation +run environment +run persistence +run retry + diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/defaults b/TAO/orbsvcs/examples/ImR/Advanced/drivers/defaults new file mode 100644 index 00000000000..212a54c6bfb --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/defaults @@ -0,0 +1,76 @@ +- General + +- How should pauses be performed +pause_type=s +- Which file to parse next +file= + +- IMR + +- Is the ImR even turned on +imr_on=1 +- Shutdown the ImR using the tao_imr tool +imr_shutdown=0 +- Time between pings, in milliseconds +imr_ping_interval=10 +- Timeout for server activation, in seconds +imr_startup_timeout=5 +- The IMR's debug level [0-2] +imr_debug_level=1 +- How the IMR saves its information (registry, binary, XML) +imr_persistence= +- Clear the persistence on load +imr_persistence_clear=1 +- The enpoint for the IMR service +imr_endpoint=iiop://:33333 + +- Activator + +- Activator mode (empty), normal, manual, auto_start, per_client +activate_mode= +- Server retry count for the activator +activate_retry=0 +- How to register the servers, update or add +registration_type=update +- Number of test environment varaiables +env_varnum=0 +- Test working directory +env_dir= + +- Server + +- Server's reference style +server_ref_style= +- Use IORTable +server_ior_table=0 +- Pause before POA and servant creation, in milliseconds +server_start_pause=0 +- Pause before object activation, in milliseconds +server_obj_act_pause=0 +- Pause before POA MGR activate, in milliseconds +server_activate_pause=0 +- Pause before orb run, in milliseconds +server_run_pause=0 +- Inactivity shutdown time during run, in seconds +server_hit_time_min=15 +- Number of POAS to create +server_poas=2 +- Number of servant activations (IORS)per POA to create +server_poa_objs=2 + +- Client + +- Pause before thread creation, in milliseconds +client_start_pause=100 +- Number of threads to create +client_threads=2 +- Number of work iterations per thread +client_iterations=2 +- Number of requests per IOR +client_requests=2 +- Make the number of requests random per IOR +client_rand_req=0 +- Expect holding exceptions +client_holding=0 +- Expent no-profile exceptions +client_noprofile=0
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/environment b/TAO/orbsvcs/examples/ImR/Advanced/drivers/environment new file mode 100644 index 00000000000..5002846cc03 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/environment @@ -0,0 +1,14 @@ +# +# Environment Tests +# + +# Simple Environment +begin +imr_shutdown=2 +server_poas=1 +server_poa_objs=0 +activate_mode=manual +registration_type=add +env_varnum=4 +env_dir=./drivers +run use_environment diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/invocation b/TAO/orbsvcs/examples/ImR/Advanced/drivers/invocation new file mode 100644 index 00000000000..5a91bc532f3 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/invocation @@ -0,0 +1,48 @@ +# +# Invocation Tests +# + +# Default test +begin +run use_invocation + +# Default IOR Table +begin +server_ior_table=1 +run use_invocation + +# Default Activator +begin +activate_mode=normal +run use_invocation + +# Default Activator IOR Table +begin +server_ior_table=1 +activate_mode=normal +run use_invocation + +# Default Activator Per Client +begin +activate_mode=per_client +run use_invocation + +# Default Activator Per Client IOR Table +begin +server_ior_table=1 +activate_mode=per_client +run use_invocation + +# Default Activator Manual +begin +activate_mode=manual +run use_invocation + +# Default Activator Manual IOR Table +begin +server_ior_table=1 +activate_mode=manual +run use_invocation + +- activate_mode=auto_start is tested in persistence.txt + diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/persistence b/TAO/orbsvcs/examples/ImR/Advanced/drivers/persistence new file mode 100644 index 00000000000..4d522eddc11 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/persistence @@ -0,0 +1,57 @@ +# +# Persistence Tests +# + +# Default Persistence w/ auto_start - XML +begin +server_poas=1 +server_poa_objs=1 +client_threads=1 +client_iterations=1 +client_requests=1 +imr_persistence=XML +activate_mode=manual +env_varnum=4 +env_dir=./drivers +run use_persistence + +# Default Persistence w/ auto_start - Binary +begin +server_poas=1 +server_poa_objs=1 +client_threads=1 +client_iterations=1 +client_requests=1 +imr_persistence=binary +activate_mode=auto_start +env_varnum=4 +env_dir=./drivers +run use_persistence + +# Default Persistence w/ auto_start - Registry +begin +server_poas=1 +server_poa_objs=1 +client_threads=1 +client_iterations=1 +client_requests=1 +imr_persistence=registry +activate_mode=auto_start +env_varnum=4 +env_dir=./drivers +run use_persistence + +-- +# Clear the persistence +begin +imr_persistence_clear=1 +imr_persistence=registry +do start_imr(); +do kill_imr(); +imr_persistence=XML +do start_imr(); +do kill_imr(); +imr_persistence=binary +do start_imr(); +do kill_imr(); +--
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/retry b/TAO/orbsvcs/examples/ImR/Advanced/drivers/retry new file mode 100644 index 00000000000..7bcfdd99631 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/retry @@ -0,0 +1,28 @@ +# +# Retry Tests +# + +# Simple Retry Test +begin +server_poas=1 +server_poa_objs=1 +client_threads=1 +client_iterations=1 +client_requests=1 +activate_retry=4 +activate_mode=per_client +run use_invocation + +# Simple Ping Test +begin +debug_level=2 +activate_mode=manual +server_poas=1 +server_poa_objs=1 +client_threads=1 +client_iterations=1 +client_requests=1 +env_pause_type=r +ping_interval=500 +server_activate_pause=10000 +run use_invocation diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_environment b/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_environment new file mode 100644 index 00000000000..35b5c3f0525 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_environment @@ -0,0 +1,19 @@ +- use_environment + +do start_imr +do start_activator + +# Regester Server (1/2) +do register_server +do activate_server +do kill_server +do unregister_server + +# Regester Server (2/2) +do register_server +do activate_server +do kill_server +do unregister_server + +do kill_activator +do kill_imr
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_invocation b/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_invocation new file mode 100644 index 00000000000..927d1ab4100 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_invocation @@ -0,0 +1,12 @@ +- use_invocation + +do invoke_stats +do start_imr +do write_iors +do start_activator +do register_server +do start_server +do launch_client +do kill_server +do kill_activator +do kill_imr diff --git a/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_persistence b/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_persistence new file mode 100644 index 00000000000..9124a28ceaa --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/drivers/use_persistence @@ -0,0 +1,22 @@ +- use_persistence + +# Start the IMR +# +imr_persistence_clear=1 +do invoke_stats +do start_imr(); +do start_activator +do write_iors +do register_server +do kill_imr + +# Reload the IMR +# +imr_persistence_clear=0 +do start_imr +do activator_list +do start_server +do launch_client +do kill_server +do kill_activator +do kill_imr
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/ImR/Advanced/manager_main.cpp b/TAO/orbsvcs/examples/ImR/Advanced/manager_main.cpp new file mode 100644 index 00000000000..6be76baf992 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/manager_main.cpp @@ -0,0 +1,59 @@ +//$Id$ +#include "Manager_i.h" + +#include <ace/Get_Opt.h> +#include <ace/streams.h> + +int main(int argc, char* argv[]) +{ + try + { + long retryCount = 0; + CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); + + ACE_Get_Opt get_opts(argc, argv, "r:"); + int c; + while ((c = get_opts()) != -1) + { + switch (c) + { + case 'r': + retryCount = ::atoi(get_opts.opt_arg()); + break; + case '?': + default: + cout << "Usage: " << argv[0] << " [-r retryCount]" << endl; + break; + } + } + + CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); + PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in()); + + PortableServer::POAManager_var mgr = poa->the_POAManager(); + + Manager_i servant(retryCount); + PortableServer::ObjectId_var oid = poa->activate_object(&servant); + obj = poa->id_to_reference(oid.in()); + { + CORBA::String_var ior = orb->object_to_string(obj.in()); + ofstream iorFile("manager.ior"); + iorFile << ior.in() << endl; + } + + cout << "IMR Test Manager activated (servers retry = " << retryCount << ")." << endl; + + mgr->activate(); + + orb->run(); + + poa->destroy(1, 1); + orb->destroy(); + return 0; + } + catch (CORBA::Exception& ex) + { + cerr << "Manager: " << ex << endl; + } + return 1; +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/run_test.pl b/TAO/orbsvcs/examples/ImR/Advanced/run_test.pl new file mode 100755 index 00000000000..b86e167dff9 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/run_test.pl @@ -0,0 +1,519 @@ +##$Id$ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# This test currently does not perform +# ImplRepo_Service -m (multicast) +# ImplRepo_Service -l (loack database) +# ImplRepo_Service -c (install/remove Windows service) +# tao_imr shutdown -l hostname (shutdown servers on a specific host) +# tao_imr shutdown_repo (shutting down ImplRepo_Service via tao_imr) + +#use strict; +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; +use Sys::Hostname; +use File::Spec; +use Getopt::Long qw(:config bundling); + + +# Initialize variables +my %TestParams; +my $IMPL_IOR = "-ORBInitRef ImplRepoService=file://implrepo.ior"; +my $ENV_CMD; +my $IMR_CMD; +my $ACT_CMD; +my $IOR_CMD; +my $SERVER_CMD; +my $CLIENT_CMD; +my $MGR; +my $IMPL; +my $ACT; +my $SERVER; + +# Get command line params +$TestParams{file} = "./drivers/all"; +GetOptions("file|f=s" => \$TestParams{file}); +parse_file(); + +# Open the Param file and run the tests within +sub parse_file +{ + my $fh; + my $file = $TestParams{file}; + + my $disabled_block = 0; + if (open($fh, $file)) + { + while (<$fh>) + { + my $line = $_; + $line =~ s/\s+$//; + + # If the line is negated, ignore it + if ($line =~ /^--/) + { + $disabled_block = ! ($disabled_block); + } + + elsif ($disabled_block == 0) + { + # If the line is negated, ignore it + if ($line =~ /^-/) + { + } + + # If the line is a comment, print it + elsif ($line =~ /^#/) + { + print "$line\n"; + } + + # Start defining an execution + elsif ($line =~ /^begin/) + { + $TestParams{file} = "./drivers/defaults"; + parse_file(); + } + + # Parse a new file + elsif ($line =~ /^run (\w+)/) + { + $TestParams{file} = "./drivers/$1"; + parse_file(); + } + + # Acquire parameter + elsif ($line =~ /(\w+)=(.*)/) + { + &acquire_param($1, $2); + } + + # Execute a single line + elsif ($line =~ /^do (\w+)/) + { + my $methodRef = $1; + &$methodRef(); #how do I do this in the strict mode? + } + } + } + } +} + +sub invoke_stats() +{ + my $IORS = ($TestParams{server_poas} * $TestParams{server_poa_objs}); + my $THREAD_REQ = ($TestParams{client_iterations} * $IORS * $TestParams{client_requests}); + my $TOTAL_REQ = ($TestParams{client_threads} * $THREAD_REQ); + + my $RAND_MSG = ""; + if ($TestParams{client_rand_req} ne "0") + { + $RAND_MSG = "(max random)"; + } + print "* Invocation Stats\n"; + print "* POAs: $TestParams{server_poas}\n"; + print "* Obj/POA: $TestParams{server_poa_objs}\n"; + print "* IORs: $IORS\n"; + print "* Threads: $TestParams{client_threads}\n"; + print "* Iterations/Thread: $TestParams{client_iterations}\n"; + print "* Requests/Thread: $THREAD_REQ $RAND_MSG\n"; + print "* Total Requests: $TOTAL_REQ $RAND_MSG\n"; +} + +sub start_imr +{ + generateCommands(); + + # Start the manager + unlink "manager.ior"; + $MGR = new PerlACE::Process("manager_main", "-r $TestParams{activate_retry}"); + $MGR->Spawn(); + PerlACE::waitforfile_timed("manager.ior", 10); + + if ($TestParams{imr_on} eq "1") + { + # Start the IMR Service + unlink "implrepo.ior"; + $IMPL = new PerlACE::Process( + "$ENV{TAO_ROOT}/orbsvcs/ImplRepo_Service/ImplRepo_Service", + $IMR_CMD); + $IMPL->Spawn(); + PerlACE::waitforfile_timed("implrepo.ior", 10); + } +} + +sub kill_imr +{ + if ($TestParams{imr_on} eq "1") + { + if ($TestParams{imr_shutdown} ne "0") + { + my $tool_params = "$IMPL_IOR shutdown-repo"; + if ($TestParams{imr_shutdown} eq "2" && $TestParams{activate_mode} ne "") + { + $tool_params = "$tool_params -a"; + } + + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", $tool_params); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + + # test $IMPL + if ($TestParams{imr_shutdown} eq "2" && $TestParams{activate_mode} ne "") + { + $ACT->WaitKill(5); + print "* Activator Killed.\n"; + } + $IMPL->WaitKill(5); + } + else + { + $IMPL->TerminateWaitKill(1); + } + print "* IMR Killed.\n"; + } + + my $TEMP_SERV = new PerlACE::Process("server_main", "-q 1 -x 0"); + $TEMP_SERV->SpawnWaitKill(5); + $MGR->Kill(); +} + +# write_iors +# creates the IORS for all the objects the client will invoke +# The POAs will be temporarely registered with the IMR. +sub write_iors +{ + generateCommands(); + unlink "imr_test.ior"; + if ($TestParams{activate_mode} eq "per_client") + { + # Run a single fake server for every POA + for (my $i = 1; $i <= $TestParams{server_poas}; $i++) + { + my $TEMP_SERV = new PerlACE::Process("server_main", "$IOR_CMD -p 1 -d " . $i); + $TEMP_SERV->SpawnWaitKill(5); + } + print "* IORs Written\n"; + } + elsif ($TestParams{activate_mode} ne "") + { + # Run a single fake server for all POAs + my $TEMP_SERV = new PerlACE::Process("server_main", "$IOR_CMD -d 1 -p $TestParams{server_poas}"); + $TEMP_SERV->SpawnWaitKill(5); + PerlACE::waitforfile_timed("imr_test.ior", 10); + print "* IORs Written\n"; + } + else + { + # Without an activator, the server will write the IORs when manually launched + } +} + +sub start_activator +{ + if ($TestParams{activate_mode} ne "") + { + generateCommands(); + + # Start the Activator + unlink "activator.ior"; + $ACT = new PerlACE::Process( + "$ENV{TAO_ROOT}/orbsvcs/ImplRepo_Service/ImR_Activator", + $ACT_CMD); + $ACT->Spawn(); + PerlACE::waitforfile_timed("activator.ior", 5); + } +} + +sub kill_activator() +{ + if ($TestParams{activate_mode} ne "") + { + if ($TestParams{imr_shutdown} ne "2") + { + $ACT->TerminateWaitKill(1); + print "* Activator Killed.\n"; + } + } +} + +# activator_list +# Lists the known servers +sub activator_list() +{ + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR list -v"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + + # TODO: parse output and check values +} + +# register_server +# Makes the activator know about the server +# Does nothing for the no-activator mode +sub register_server() +{ + if ($TestParams{activate_mode} eq "per_client") + { + # Register a single POA for each server + generateCommands(); + my $actname = hostname; + for (my $i = 1; $i <= $TestParams{server_poas}; $i++) + { + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR $TestParams{registration_type} POA_".$i."_1 -c \"server_main $SERVER_CMD -d ".$i." -p 1\" -a $TestParams{activate_mode} -r $TestParams{activate_retry} -l $actname $ENV_CMD"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + } + } + elsif ($TestParams{activate_mode} ne "") + { + # Register only the first POA for our server + # The remaining POAs will auto-register when the server is started + generateCommands(); + my $actname = hostname; + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR $TestParams{registration_type} POA_1_1 -c \"server_main $SERVER_CMD -d 1 -p $TestParams{server_poas}\" -a $TestParams{activate_mode} -r $TestParams{activate_retry} -l $actname $ENV_CMD"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + } + else + { + # nothing to register without an activator + } +} + +sub unregister_server() +{ + if ($TestParams{activate_mode} eq "per_client") + { + # Register a single POA for each server + generateCommands(); + my $actname = hostname; + for (my $i = 1; $i <= $TestParams{server_poas}; $i++) + { + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR remove POA_".$i."_1"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + } + } + elsif ($TestParams{activate_mode} ne "") + { + # Register only the first POA for our server + # The remaining POAs will auto-register when the server is started + generateCommands(); + my $actname = hostname; + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR remove POA_1_1"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + } + else + { + # nothing is registered without an activator + } +} + + +# start_server +# This method is called before the client is luanched. +# It only launches the server for the two manual modes (no-act and manual-act). +sub start_server() +{ + if ($TestParams{activate_mode} eq "") + { + generateCommands(); + $SERVER = new PerlACE::Process("server_main", "$SERVER_CMD -d 1 -o 1 -p $TestParams{server_poas}"); + $SERVER->Spawn(); + PerlACE::waitforfile_timed("imr_test.ior", 10); + } + elsif ($TestParams{activate_mode} eq "manual") + { + activate_server(); + } + else + { + # The server will be launched by the ImR or Client + } +} + +# Activate Server +# This method is an alternative way to start the server. +# It will activate the servers regardless of mode. +sub activate_server +{ + if ($TestParams{activate_mode} eq "per_client") + { + # Register a single POA for each server + generateCommands(); + my $actname = hostname; + for (my $i = 1; $i <= $TestParams{server_poas}; $i++) + { + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR activate POA_".$i."_1"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + } + } + elsif ($TestParams{activate_mode} ne "") + { + # Register only the first POA for our server + # The remaining POAs will auto-register when the server is started + generateCommands(); + my $actname = hostname; + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR activate POA_1_1"); + $TOOL->IgnoreExeSubDir(1); + $TOOL->SpawnWaitKill(5); + } + else # No activator + { + start_server(); + } +} + +# kill server +# This method is called when the services of the server are no longer required. +# per_client does nothing. +sub kill_server() +{ + if ($TestParams{activate_mode} eq "per_client") + { + # clients do this + } + elsif ($TestParams{activate_mode} ne "") + { + # Kill the single server + my $TOOL = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr", "$IMPL_IOR shutdown POA_1_1"); + $TOOL->SpawnWaitKill(5); + } + else + { + $SERVER->Kill(); + print "* Server Killed.\n"; + } +} + +# launch_client +# This method spawns the client and blocks until the client is done +sub launch_client +{ + generateCommands(); + if ($TestParams{activate_mode} eq "per_client") + { + my $CLIENT = new PerlACE::Process("client_main", "$CLIENT_CMD -x 1"); + $CLIENT->SpawnWaitKill(500); + } + else + { + my $CLIENT = new PerlACE::Process("client_main", "$CLIENT_CMD"); + $CLIENT->SpawnWaitKill(500); + } +} + +# Private methods + +# acquire_param +# Transforms certain parameters into usable forms +sub acquire_param +{ + $TestParams{$_[0]} = $_[1]; + + if ($_[0] eq "imr_persistence") + { + if ($TestParams{imr_persistence} eq "registry") + { + $TestParams{imr_persistence} = "-r"; + } + elsif ($TestParams{imr_persistence} eq "binary") + { + $TestParams{imr_persistence} = "-p imr_persist"; + } + elsif ($TestParams{imr_persistence} eq "XML") + { + $TestParams{imr_persistence} = "-x imr_persist"; + } + } + + elsif ($_[0] eq "imr_persistence_clear") + { + if ($TestParams{imr_persistence_clear} eq "1") + { + $TestParams{imr_persistence_clear} = "-e"; + } + else + { + $TestParams{imr_persistence_clear} = ""; + } + } + + elsif ($_[0] eq "server_ref_style" && $TestParams{server_ref_style} ne "") + { + $TestParams{server_ref_style} = "-ORBObjRefStyle $TestParams{server_ref_style}"; + } + + elsif ($_[0] eq "client_rand_req" && $TestParams{client_rand_req} eq "1") + { + $TestParams{client_rand_req} = "r"; + } + + elsif ($_[0] eq "client_holding" && $TestParams{client_holding} eq "1") + { + $TestParams{client_holding} = "h"; + } + + elsif ($_[0] eq "client_noprofile" && $TestParams{client_noprofile} eq "1") + { + $TestParams{client_noprofile} = "n"; + } +} + +# generateCommands +# Create common cammand line sets +sub generateCommands +{ + $ENV_CMD = ""; + for (my $i = 0; $i < $TestParams{env_varnum}; $i++) + { + $ENV_CMD = "$ENV_CMD -e Name_" . $i . "=Value_" . $i . " "; + } + + if ($TestParams{env_dir} ne "") + { + $ENV_CMD = "$ENV_CMD -w " . File::Spec->rel2abs($TestParams{env_dir}) . " "; + } + + $IMR_CMD = "-o implrepo.ior " + . "$TestParams{imr_persistence} " + . "$TestParams{imr_persistence_clear} " + . "-ORBEndPoint $TestParams{imr_endpoint} " + . "-d $TestParams{imr_debug_level} " + . "-v $TestParams{imr_ping_interval} " + . "-t $TestParams{imr_startup_timeout} "; + + $ACT_CMD = "$IMPL_IOR -o activator.ior -d $TestParams{imr_debug_level}"; + + $SERVER_CMD = "-ORBUseIMR $TestParams{imr_on} $IMPL_IOR " + . "$ENV_CMD " + . "$TestParams{server_ref_style} " + . "-b " . File::Spec->rel2abs(".") . " " + . "-t $TestParams{server_ior_table} " + . "-z $TestParams{env_pause_type} " + . "-s $TestParams{server_start_pause} " + . "-c $TestParams{server_obj_act_pause} " + . "-a $TestParams{server_activate_pause} " + . "-r $TestParams{server_run_pause} " + . "-n $TestParams{server_poa_objs} " + . "-x $TestParams{server_hit_time_min} "; + + $CLIENT_CMD = "-z $TestParams{env_pause_type} " + . "-s $TestParams{client_start_pause} " + . "-t $TestParams{client_threads} " + . "-i $TestParams{client_iterations} " + . "-r $TestParams{client_rand_req}$TestParams{client_requests} " + . "-e $TestParams{client_holding}$TestParams{client_noprofile} "; + + $IOR_CMD = "-ORBUseIMR $TestParams{imr_on} $IMPL_IOR " + . "$TestParams{server_ref_style} " + . "-b " . File::Spec->rel2abs(".") . " " + . "-t $TestParams{server_ior_table} " + . "-n $TestParams{server_poa_objs} " + . "-z s -s 100 -o 1 -x 0 " # sleep 100, write iors, and exit +} diff --git a/TAO/orbsvcs/examples/ImR/Advanced/server_main.cpp b/TAO/orbsvcs/examples/ImR/Advanced/server_main.cpp new file mode 100644 index 00000000000..ccf813d0e9c --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Advanced/server_main.cpp @@ -0,0 +1,26 @@ +//$Id$ +#include "TestServer.h" + +#include <ace/streams.h> + +int main(int argc, char* argv[]) +{ + try + { + CORBA::ORB_var orb; + orb = CORBA::ORB_init(argc, argv); + + { + TestServer server(orb.in(), argc, argv); + server.run(); + } + + orb->destroy(); + return 0; + } + catch (CORBA::Exception& ex) + { + cerr << "CORBA error: " << ex << endl; + } + return 1; +} diff --git a/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp b/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp index f2bda240f28..9907942df53 100644 --- a/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp +++ b/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp @@ -37,9 +37,9 @@ TAO_IOR_Multicast::TAO_IOR_Multicast (const char *ior, TAO_IOR_Multicast::~TAO_IOR_Multicast (void) { - if (this->mcast_dgram_.leave (this->mcast_addr_) == -1) + if (ior_.length() > 0 && this->mcast_dgram_.leave (this->mcast_addr_) == -1) { - ACE_ERROR ((LM_ERROR, "%p\n", "leave")); + ACE_ERROR ((LM_ERROR, "%p\n", "~TAO_IOR_Multicast()")); } } @@ -50,7 +50,7 @@ TAO_IOR_Multicast::init (const char *ior, TAO_Service_ID service_id) { if (this->mcast_addr_.set (port, mcast_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set"), -1); + ACE_ERROR_RETURN ((LM_ERROR, "TAO_IOR_Multicast::init() %p\n", "set"), -1); return common_init (ior, service_id); } @@ -106,7 +106,7 @@ TAO_IOR_Multicast::common_init (const char *ior, if (this->response_addr_.set ((u_short) 0) == -1) ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", + "TAO_IOR_Multicast::common_init() %p\n", "set"), -1); else if (this->response_.open (this->response_addr_) == -1) @@ -123,13 +123,13 @@ TAO_IOR_Multicast::common_init (const char *ior, if (this->mcast_dgram_.subscribe (this->mcast_addr_, 1, ACE_TEXT_CHAR_TO_TCHAR(this->mcast_nic_.c_str())) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "subscribe"),-1); + ACE_ERROR_RETURN ((LM_ERROR, "TAO_IOR_Multicast::common_init() %p\n", "subscribe"),-1); } else { if (this->mcast_dgram_.subscribe (this->mcast_addr_) == -1) ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", + "TAO_IOR_Multicast::common_init() %p\n", "subscribe"), -1); } @@ -171,7 +171,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) 0); else if (ACE_NTOHS (header) <= 0) ACE_ERROR_RETURN ((LM_ERROR, - "Header value < 1\n"), + "TAO_IOR_Multicast::handle_input() Header value < 1\n"), 0); // Receive full client multicast request. @@ -214,7 +214,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) && ACE_OS::strcmp (service_name, "MCASTServer") != 0) { - ACE_ERROR_RETURN ((LM_ERROR, + ACE_ERROR_RETURN ((LM_ERROR, "IOR_Multicast::connect() Unknown service requested.\n"),0); } @@ -256,7 +256,7 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, - "(%P|%t) ior_: <%s>\n" + "(%P|%t) TAO_IOR_Multicast::handle_input() ior_: <%s>\n" "sent to %s:%u.\n" "result from send = %d\n", this->ior_.c_str (), diff --git a/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp b/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp index 5ad5cf3818a..ddd5e397a93 100644 --- a/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp +++ b/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.cpp @@ -2,6 +2,8 @@ #include "XML_Saver.h" +#include "ACEXML/common/XML_Util.h" + #include "ace/High_Res_Timer.h" #include "ace/OS_NS_stdio.h" #include "ace/OS_NS_unistd.h" @@ -166,17 +168,14 @@ namespace TAO_Notify ACE_OS::fprintf (out, " %s%s%ld%s", TOPOLOGY_ID_NAME, "=\"", lid, "\""); } - char * buffer = 0; - size_t buffer_size = 0; + const size_t BUF_SIZE = 512; + ACE_CString tmp(BUF_SIZE); for (size_t idx = 0; idx < attrs.size(); idx++) { + ACEXML_escape_string(attrs[idx].value, tmp); ACE_OS::fprintf (out, "%s%s%s%s%s", " ", - attrs[idx].name.c_str (), - "=\"", - escape_string(buffer, buffer_size, attrs[idx].value.c_str ()), - "\""); + attrs[idx].name.c_str (), "=\"", tmp.c_str(), "\""); } - delete [] buffer; ACE_OS::fprintf (out, ">\n"); this->indent_ += " "; return true; @@ -195,60 +194,4 @@ namespace TAO_Notify ACE_OS::fprintf (out, "%s%s%s%s", indent_.c_str(), "</", type.c_str(), ">\n"); } - - static const char escaped_amp[] = "&"; - static const char escaped_less[] = "<"; - static const char escaped_greater[] = ">"; - static const char escaped_apos[] = "'"; - static const char escaped_quote[] = """; - - char * - XML_Saver::escape_string(char *& buffer, size_t & size, const ACE_CString & str) - { - size_t len = str.length (); - size_t needed = len * (sizeof(escaped_quote)-1) + 1; - if (needed > size) - { - delete [] buffer; - buffer = new char [needed]; - size = needed; - } - size_t pos = 0; // position in output buffer - for (size_t stridx = 0; stridx < len; stridx++) - { - char curchar = str[stridx]; - if (curchar == '&') - { - strcpy (&buffer[pos], escaped_amp); - pos += sizeof (escaped_amp) -1; - } - else if (curchar == '<') - { - strcpy (&buffer[pos], escaped_less); - pos += sizeof (escaped_less) -1; - } - else if (curchar == '>') - { - strcpy (&buffer[pos], escaped_greater); - pos += sizeof (escaped_greater) -1; - } - else if (curchar == '\'') - { - strcpy (&buffer[pos], escaped_apos); - pos += sizeof (escaped_apos) -1; - } - else if (curchar == '\"') - { - strcpy (&buffer[pos], escaped_quote); - pos += sizeof (escaped_quote) -1; - } - else - { - buffer[pos++] = curchar; - } - } - buffer[pos++] = '\0'; - return buffer; - } - } /* namespace TAO_Notify */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.h b/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.h index e51370f8e6d..2cbdbf643c0 100644 --- a/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.h +++ b/TAO/orbsvcs/orbsvcs/Notify/XML_Saver.h @@ -61,9 +61,6 @@ public: private: void backup_file_name (char * file_path, int nfile); - /// \return newstr to allow in-line use - char* escape_string(char *& newstr, size_t & size, const ACE_CString & str); - private: /// A stream representing our current output. FILE * output_; diff --git a/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.cpp b/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.cpp index b1d1b113a70..3de15da1e53 100644 --- a/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.cpp +++ b/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.cpp @@ -6,21 +6,15 @@ ACE_RCSID(orbsvcs, Shutdown_Utilities, "$Id$") -Shutdown_Functor::Shutdown_Functor (void) -{ -} - -Shutdown_Functor::~Shutdown_Functor (void) -{ -} - Service_Shutdown::Service_Shutdown (Shutdown_Functor& sf) : functor_(sf) { ACE_Sig_Set std_signals; #if !defined(ACE_LACKS_UNIX_SIGNALS) - std_signals.sig_add (SIGINT); std_signals.sig_add (SIGTERM); + std_signals.sig_add (SIGINT); +#elif defined(ACE_WIN32) + std_signals.sig_add (SIGINT); #endif this->set_signals (std_signals); } @@ -45,12 +39,13 @@ Service_Shutdown::set_signals (ACE_Sig_Set& which_signals) { // iterate over all the signals in which_signals and register them... int did_register = 0; - for (int i = 1; i < ACE_NSIG; i++) + for (int i = 1; i < ACE_NSIG; ++i) + { if (which_signals.is_member (i)) { if (this->shutdown_.register_handler (i, this) == -1) { -#if defined(__TANDEM) +#if defined(__TANDEM) // Tandem NSK platform has no signal 10 so do not emit a warning for it if (i != 10) #endif @@ -64,14 +59,18 @@ Service_Shutdown::set_signals (ACE_Sig_Set& which_signals) else did_register = 1; } - + } if (! did_register) + { ACE_DEBUG ((LM_WARNING, "WARNING: Service_Shutdown did not register any signals.\n")); + } } Service_Shutdown::~Service_Shutdown () { + for (int i = 1; i < ACE_NSIG; ++i) + this->shutdown_.remove_handler(i); } int diff --git a/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.h b/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.h index 77a53946532..a91705d3401 100644 --- a/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.h +++ b/TAO/orbsvcs/orbsvcs/Shutdown_Utilities.h @@ -24,8 +24,8 @@ public: virtual void operator() (int which_signal) = 0; protected: - Shutdown_Functor (void); - virtual ~Shutdown_Functor (void); + Shutdown_Functor (void) {} + virtual ~Shutdown_Functor (void) {} }; /** diff --git a/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.cpp b/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.cpp index b0e9d462649..b4cad654f09 100644 --- a/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.cpp +++ b/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.cpp @@ -83,24 +83,18 @@ Airplane_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) return retval; // Get the POA from the ORB. - CORBA::Object_var poa_object = + CORBA::Object_var obj = this->orb_->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - - // Check the POA object. - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Airplane_i::init(): Unable to initialize the POA.\n"), - -1); + ACE_ASSERT(! CORBA::is_nil (obj.in ())); // Narrow the object to a POA. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + root_poa_ = PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; // Get the POA_Manager. - this->poa_manager_ = root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + this->poa_manager_ = this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; // We now need to create a POA with the persistent and user_id policies, @@ -110,17 +104,17 @@ Airplane_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) policies.length (2); policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID + this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT + this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; this->airplane_poa_ = - root_poa->create_POA (poa_name, + this->root_poa_->create_POA (poa_name, this->poa_manager_.in (), policies ACE_ENV_ARG_PARAMETER); @@ -134,9 +128,7 @@ Airplane_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) ACE_TRY_CHECK; } - ACE_NEW_RETURN (this->server_impl_, - Airplane_i, - -1); + ACE_NEW_RETURN (this->server_impl_, Airplane_i, -1); PortableServer::ObjectId_var server_id = PortableServer::string_to_ObjectId ("server"); @@ -146,34 +138,36 @@ Airplane_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::Object_var server_obj = - this->airplane_poa_->id_to_reference (server_id.in () ACE_ENV_ARG_PARAMETER); + obj = this->airplane_poa_->id_to_reference (server_id.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; CORBA::String_var ior = - this->orb_->object_to_string (server_obj.in () ACE_ENV_ARG_PARAMETER); + this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "The IOR is: <%s>\n", ior.in ())); + ACE_DEBUG ((LM_DEBUG, "The ImRified IOR is: <%s>\n", ior.in ())); TAO_Root_POA* tmp_poa = dynamic_cast<TAO_Root_POA*>(airplane_poa_.in()); - server_obj = tmp_poa->id_to_reference_i (server_id.in (), false ACE_ENV_ARG_PARAMETER); + obj = tmp_poa->id_to_reference_i (server_id.in (), false ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::String_var direct_ior = - this->orb_->object_to_string (server_obj.in () ACE_ENV_ARG_PARAMETER); + CORBA::String_var plain_ior = + this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, "The plain IOR is: <%s>\n", plain_ior.in ())); - CORBA::Object_var table_object = - this->orb_->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); + // Note : The IORTable will only be used for those clients who try to + // invoke indirectly using a simple object_key reference + // like "corbaloc::localhost:8888/airplane_server". + obj = this->orb_->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; IORTable::Table_var adapter = - IORTable::Table::_narrow (table_object.in () ACE_ENV_ARG_PARAMETER); + IORTable::Table::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; ACE_ASSERT(! CORBA::is_nil (adapter.in ())); - adapter->bind (poa_name, direct_ior.in () ACE_ENV_ARG_PARAMETER); + adapter->bind (poa_name, plain_ior.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Make sure the POA manager is activated. this->poa_manager_->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; @@ -202,6 +196,9 @@ Airplane_Server_i::run (ACE_ENV_SINGLE_ARG_DECL) { this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; + + this->root_poa_->destroy(1, 1); + this->orb_->destroy(); } ACE_CATCHANY { @@ -217,19 +214,5 @@ Airplane_Server_i::run (ACE_ENV_SINGLE_ARG_DECL) Airplane_Server_i::~Airplane_Server_i (void) { - ACE_TRY_NEW_ENV - { - if (!CORBA::is_nil (this->airplane_poa_.in ())) - { - this->airplane_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - // ignore exceptions. - } - ACE_ENDTRY; - delete this->server_impl_; } diff --git a/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.h b/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.h index 68a02745b94..3b9a1b1131e 100644 --- a/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.h +++ b/TAO/orbsvcs/tests/ImplRepo/airplane_server_i.h @@ -57,6 +57,8 @@ private: /// The ORB. CORBA::ORB_var orb_; + PortableServer::POA_var root_poa_; + /// The POA for the Airplane Server. PortableServer::POA_var airplane_poa_; diff --git a/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl index d1b69ebb7f5..9f570603f1f 100755 --- a/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl +++ b/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl @@ -12,11 +12,9 @@ use PerlACE::Run_Test; # Program locations $imr_locator_ior = PerlACE::LocalFile ("imr_locator.ior"); -$imr_activator_ior = PerlACE::LocalFile ("imr_activator.ior"); $pfile = PerlACE::LocalFile ("persistence.dat"); $IMR_LOCATOR = new PerlACE::Process ("../../../ImplRepo_Service/ImplRepo_Service"); -$IMR_ACTIVATOR = new PerlACE::Process ("../../../ImplRepo_Service/ImR_Activator"); $TAO_IMR = new PerlACE::Process ("../../../../../bin/tao_imr"); # We want the tao_imr executable to be found exactly in the path @@ -30,13 +28,12 @@ $TAO_IMR->IgnoreExeSubDir (1); $errors = 0; unlink $imr_locator_ior; -unlink $imr_activator_ior; unlink $pfile; ################################################################################ ## Start the implementation Repository Locator -$IMR_LOCATOR->Arguments ("-p $pfile -o $imr_locator_ior -d 1"); +$IMR_LOCATOR->Arguments ("-p $pfile -o $imr_locator_ior -d 2"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 20) == -1) { @@ -45,18 +42,6 @@ if (PerlACE::waitforfile_timed ($imr_locator_ior, 20) == -1) { exit 1; } -## Start the implementation Repository Activator - -$IMR_ACTIVATOR->Arguments ("-o $imr_activator_ior -d 1 -ORBInitRef ImplRepoService=file://$imr_locator_ior"); -$IMR_ACTIVATOR->Spawn (); - -if (PerlACE::waitforfile_timed ($imr_activator_ior, 10) == -1) { - print STDERR "ERROR: waiting for $imr_activator_ior\n"; - $IMR_ACTIVATOR->Kill (); - $IMR_LOCATOR->Kill (); - exit 1; -} - ################################################################################ ## Test out commands on the IMR @@ -96,7 +81,7 @@ if ($taoimr != 0) { ++$errors; } -print "===== Readding a server\n"; +print "===== Re-adding a server\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" . " add Foo -c foobarbaz"); @@ -110,6 +95,7 @@ if ($taoimr != 0) { ################################################################################ ## Kill the IMR +print "===== Killing the ImR and restarting in locked mode.\n"; $iserver = $IMR_LOCATOR->TerminateWaitKill (5); @@ -123,7 +109,7 @@ unlink $imr_locator_ior; ################################################################################ ## Restart the Implementation Repository in locked mode. -$IMR_LOCATOR->Arguments ("-l -p $pfile -o $imr_locator_ior -d 1"); +$IMR_LOCATOR->Arguments ("-l -p $pfile -o $imr_locator_ior -d 2"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { @@ -186,7 +172,7 @@ if ($taoimr != 2) { # NO_PERMISSION } ################################################################################ -## Kill the IMR_LOCATOR and IMR_ACTIVATOR +## Kill the IMR $iserver = $IMR_LOCATOR->TerminateWaitKill (5); @@ -197,14 +183,6 @@ if ($iserver != 0) { unlink $imr_locator_ior; -$iserver = $IMR_ACTIVATOR->TerminateWaitKill (5); - -if ($iserver != 0) { - print STDERR "ERROR: IMR returned $iserver\n"; - ++$errors; -} - -unlink $imr_activator_ior; unlink $pfile; exit $errors; diff --git a/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.cpp b/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.cpp index 3fc4e802894..f3278167081 100644 --- a/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.cpp +++ b/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.cpp @@ -30,20 +30,6 @@ Nestea_Server_i::Nestea_Server_i (const char * /*filename*/) Nestea_Server_i::~Nestea_Server_i (void) { - ACE_TRY_NEW_ENV - { - if (!CORBA::is_nil (this->nestea_poa_.in ())) - { - this->nestea_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - // ignore exceptions - } - ACE_ENDTRY; - delete this->server_impl_; } @@ -92,9 +78,17 @@ Nestea_Server_i::parse_args (void) // - Uses the IR helper class to alter the object // - Creates an IOR from the servant and outputs it to a file +static void printEnvVars() { + char* useimr = ACE_OS::getenv("TAO_USE_IMR"); + char* ior = ACE_OS::getenv("ImplRepoServiceIOR"); + ACE_OS::printf("nestea_server: TAO_USE_IMR=%s\n", useimr != 0 ? useimr : "<null>"); + ACE_OS::printf("nestea_server: ImplRepoServiceIOR=%s\n", ior != 0 ? ior : "<null>"); +} + int Nestea_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) { + printEnvVars(); // Since the Implementation Repository keys off of the POA name, we need // to use the SERVER_NAME as the POA's name. const char *poa_name = SERVER_NAME; @@ -116,24 +110,16 @@ Nestea_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) return retval; // Get the POA from the ORB. - CORBA::Object_var poa_object = + CORBA::Object_var obj = this->orb_->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil (obj.in ())); - // Check the POA object. - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Nestea_i::init(): Unable to initialize the POA.\n"), - -1); - - // Narrow the object to a POA. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + this->root_poa_ = PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - // Get the POA_Manager. - this->poa_manager_ = root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + this->poa_manager_ = this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; // We now need to create a POA with the persistent and user_id policies, @@ -143,17 +129,17 @@ Nestea_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) policies.length (2); policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID + this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT + this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; this->nestea_poa_ = - root_poa->create_POA (poa_name, + this->root_poa_->create_POA (poa_name, this->poa_manager_.in (), policies ACE_ENV_ARG_PARAMETER); @@ -179,47 +165,38 @@ Nestea_Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::Object_var server_obj = - this->nestea_poa_->id_to_reference (server_id.in () ACE_ENV_ARG_PARAMETER); + obj = this->nestea_poa_->id_to_reference (server_id.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::String_var server_str = - this->orb_->object_to_string (server_obj.in () ACE_ENV_ARG_PARAMETER); + CORBA::String_var ior = + this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "The IOR is: <%s>\n", server_str.in ())); + ACE_DEBUG ((LM_DEBUG, "The IOR is: <%s>\n", ior.in ())); TAO_Root_POA* tmp_poa = dynamic_cast<TAO_Root_POA*>(nestea_poa_.in()); - server_obj = tmp_poa->id_to_reference_i (server_id.in (), false ACE_ENV_ARG_PARAMETER); + obj = tmp_poa->id_to_reference_i (server_id.in (), false ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::String_var direct_ior = - this->orb_->object_to_string (server_obj.in () ACE_ENV_ARG_PARAMETER); + CORBA::String_var rawior = + this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::Object_var table_object = - this->orb_->resolve_initial_references ("IORTable" - ACE_ENV_ARG_PARAMETER); + obj = this->orb_->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; IORTable::Table_var adapter = - IORTable::Table::_narrow (table_object.in () ACE_ENV_ARG_PARAMETER); + IORTable::Table::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - if (CORBA::is_nil (adapter.in ())) - { - ACE_ERROR ((LM_ERROR, "Nil IORTable\n")); - } - else - { - adapter->bind (poa_name, direct_ior.in () ACE_ENV_ARG_PARAMETER); + ACE_ASSERT(! CORBA::is_nil (adapter.in ())); + + adapter->bind (poa_name, rawior.in() ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - } - // Make sure the POA manager is activated. this->poa_manager_->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; if (this->ior_output_file_) { - ACE_OS::fprintf (this->ior_output_file_, "%s", server_str.in ()); + ACE_OS::fprintf (this->ior_output_file_, "%s", ior.in ()); ACE_OS::fclose (this->ior_output_file_); } } @@ -245,6 +222,9 @@ Nestea_Server_i::run (ACE_ENV_SINGLE_ARG_DECL) ACE_Time_Value tv(SELF_DESTRUCT_SECS); this->orb_->run (tv ACE_ENV_ARG_PARAMETER); + + this->root_poa_->destroy(1, 1); + this->orb_->destroy(); } ACE_CATCHANY { diff --git a/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.h b/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.h index 970b85b5d19..ff3aee780de 100644 --- a/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.h +++ b/TAO/orbsvcs/tests/ImplRepo/nestea_server_i.h @@ -54,9 +54,10 @@ private: /// The command line arguments. char **argv_; - /// The ORB. CORBA::ORB_var orb_; + PortableServer::POA_var root_poa_; + /// The POA for the Nestea Server. PortableServer::POA_var nestea_poa_; diff --git a/TAO/orbsvcs/tests/ImplRepo/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/run_test.pl index 062d0952760..1144b688898 100755 --- a/TAO/orbsvcs/tests/ImplRepo/run_test.pl +++ b/TAO/orbsvcs/tests/ImplRepo/run_test.pl @@ -6,15 +6,18 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' # -*- perl -*- ############################################################################### + +use strict; + use lib "../../../../bin"; use PerlACE::Run_Test; use Cwd; use Sys::Hostname; use File::Copy; -$cwd = getcwd(); +my $cwd = getcwd(); -$ACE_ROOT = $ENV{ACE_ROOT}; +my $ACE_ROOT = $ENV{ACE_ROOT}; if (!defined $ACE_ROOT) { chdir ('../../../../'); @@ -23,25 +26,26 @@ if (!defined $ACE_ROOT) { print "ACE_ROOT not defined, defaulting to ACE_ROOT=$ACE_ROOT\n"; } -$airplane_ior = PerlACE::LocalFile ("airplane.ior"); -$nestea_ior = PerlACE::LocalFile ("nestea.ior"); -$imr_activator_ior = PerlACE::LocalFile ("imr_activator.ior"); -$imr_locator_ior = PerlACE::LocalFile ("imr_locator.ior"); +my $airplane_ior = PerlACE::LocalFile ("airplane.ior"); +my $nestea_ior = PerlACE::LocalFile ("nestea.ior"); +my $imr_activator_ior = PerlACE::LocalFile ("imr_activator.ior"); +my $imr_locator_ior = PerlACE::LocalFile ("imr_locator.ior"); -$refstyle = " -ORBobjrefstyle URL"; +my $refstyle = " -ORBObjRefStyle URL"; -$backing_store = "imr_backing_store.xml"; -$nestea_dat = "nestea.dat"; +my $backing_store = "imr_backing_store.xml"; +my $P_SVR = new PerlACE::Process (PerlACE::LocalFile("persist server")); +my $nestea_dat = "nestea.dat"; -$protocol = "iiop"; -$host = hostname(); -$port = 12345; -$endpoint = "-ORBEndpoint " . "$protocol" . "://" . "$host" . ":" . $port; +my $protocol = "iiop"; +my $host = hostname(); +my $port = 12345; +my $endpoint = "-ORBEndpoint " . "$protocol" . "://:" . $port; -$IMR_LOCATOR = new PerlACE::Process ("../../ImplRepo_Service/ImplRepo_Service"); -$IMR_ACTIVATOR = new PerlACE::Process ("../../ImplRepo_Service/ImR_Activator"); -$TAO_IMR = new PerlACE::Process("../../../../bin/tao_imr"); +my $IMR_LOCATOR = new PerlACE::Process ("../../ImplRepo_Service/ImplRepo_Service"); +my $IMR_ACTIVATOR = new PerlACE::Process ("../../ImplRepo_Service/ImR_Activator"); +my $TAO_IMR = new PerlACE::Process("../../../../bin/tao_imr"); # We want the tao_imr executable to be found exactly in the path # given, without being modified by the value of -ExeSubDir. @@ -57,10 +61,10 @@ sub create_ncli { return new PerlACE::Process (PerlACE::LocalFile ("nestea_client"), " -k file://$nestea_ior"); } -$A_SVR = new PerlACE::Process (PerlACE::LocalFile ("airplane_server")); -$A_CLI = create_acli(); -$N_SVR = new PerlACE::Process (PerlACE::LocalFile ("nestea_server")); -$N_CLI = create_ncli(); +my $A_SVR = new PerlACE::Process (PerlACE::LocalFile ("airplane_server")); +my $A_CLI = create_acli(); +my $N_SVR = new PerlACE::Process (PerlACE::LocalFile ("nestea_server")); +my $N_CLI = create_ncli(); # Make sure the files are gone, so we can wait on them. unlink $airplane_ior; @@ -68,7 +72,9 @@ unlink $nestea_ior; unlink $imr_locator_ior; unlink $imr_activator_ior; unlink $backing_store; -unlink $nestea.dat; +unlink $nestea_dat; +unlink $P_SVR->Executable(); + # The Tests @@ -127,7 +133,7 @@ sub nestea_test $status = 1; } - $server = $N_SVR->TerminateWaitKill (5); + my $server = $N_SVR->TerminateWaitKill (5); if ($server != 0) { print STDERR "ERROR: server returned $server\n"; @@ -169,8 +175,8 @@ sub nt_service_test $BIN_IMR_LOCATOR->SpawnWaitKill (5); print "Installing TAO ImR Services\n"; - $BIN_IMR_ACTIVATOR->Arguments ("-c install $imr_initref"); - $BIN_IMR_LOCATOR->Arguments ("-c install -orbendpoint iiop://:8888"); + $BIN_IMR_ACTIVATOR->Arguments ("-c install $imr_initref -d 0"); + $BIN_IMR_LOCATOR->Arguments ("-c install -d 0 -orbendpoint iiop://:8888"); $result = $BIN_IMR_LOCATOR->SpawnWaitKill (5); if ($result != 0) { @@ -186,50 +192,55 @@ sub nt_service_test # Starting the activator will also start the locator print "Starting TAO Implementation Repository Services\n"; - system("net start taoimr > nul 2>&1"); - system("net start taoimractivator > nul 2>&1"); + # Starting the activator should start the ImR automatically + #system("net start taoimr 2>&1"); + system("net start taoimractivator 2>&1"); - $TAO_IMR->Arguments ("add airplane_server -c \"" + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator + $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" . $A_SVR->Executable () . - " -ORBUseIMR 1\" -w \"$ACE_ROOT/lib\" $imr_initref"); - + "\" -w \"$ACE_ROOT/lib\""); $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: tao_imr add airplane_server returned $result\n"; return 1; } - $A_SVR->Arguments ("-o $airplane_ior -ORBUseIMR 1 $imr_initref"); - $A_SVR->Spawn (); + $TAO_IMR->Arguments ("$imr_initref list -v"); + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr list -v returned $result\n"; + return 1; + } + $TAO_IMR->Arguments ("$imr_initref ior airplane_server -f $airplane_ior"); + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr ior airplane_server returned $result\n"; + return 1; + } if (PerlACE::waitforfile_timed ($airplane_ior, 10) == -1) { print STDERR "ERROR: cannot find $airplane_ior\n"; $A_SVR->Kill (); return 1; } - $result = $A_CLI->SpawnWaitKill (10); + $result = $A_CLI->SpawnWaitKill (20); if ($result != 0) { print STDERR "ERROR: airplane client returned $result\n"; return 1; } - $TAO_IMR->Arguments ("shutdown airplane_server $imr_initref"); - - $result = $TAO_IMR->SpawnWaitKill (10); + $TAO_IMR->Arguments ("$imr_initref shutdown airplane_server"); + $result = $TAO_IMR->SpawnWaitKill (20); if ($result != 0) { print STDERR "ERROR: tao_imr shutdown airplane_server returned $result\n"; return 1; } - $result = $A_SVR->WaitKill(5); - if ($result != 0) { - print STDERR "ERROR: airplane_server returned $result\n"; - } - print "Stopping TAO Implementation Repository Service\n"; - system("net stop taoimractivator > nul 2>&1"); - system("net stop taoimr > nul 2>&1"); + system("net stop taoimractivator 2>&1"); + system("net stop taoimr 2>&1"); print "Removing TAO ImR Services\n"; $BIN_IMR_ACTIVATOR->Arguments ("-c remove"); @@ -271,9 +282,11 @@ sub airplane_ir_test return 1; } - $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator + # Can use update to add servers. + $TAO_IMR->Arguments ("$imr_initref update airplane_server -c \"" . $A_SVR->Executable () - . " -ORBUseIMR 1 -o $airplane_ior $imr_initref\""); + . " -o $airplane_ior \""); $result = $TAO_IMR->SpawnWaitKill (5); if ($result != 0) { @@ -329,13 +342,13 @@ sub airplane_ir_test my $imr_activator = $IMR_ACTIVATOR->TerminateWaitKill (5); if ($imr_activator != 0) { - print STDERR "ERROR: IMR returned $implrepo\n"; + print STDERR "ERROR: Activator returned $imr_activator\n"; $status = 1; } my $imr_locator = $IMR_LOCATOR->TerminateWaitKill (5); if ($imr_locator != 0) { - print STDERR "ERROR: IMR returned $implrepo\n"; + print STDERR "ERROR: ImR returned $imr_locator\n"; $status = 1; } @@ -355,7 +368,7 @@ sub nestea_ir_test $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { - print STDERR "ERROR: cannot find $implrepo_ior\n"; + print STDERR "ERROR: cannot find $imr_locator_ior\n"; $IMR_LOCATOR->Kill (); return 1; } @@ -370,18 +383,6 @@ sub nestea_ir_test return 1; } - $TAO_IMR->Arguments ("$imr_initref add nestea_server -c \"" - . $N_SVR->Executable () - . " -ORBUseIMR 1 $imr_initref -o $nestea_ior\""); - - $result = $TAO_IMR->SpawnWaitKill (10); - if ($result != 0) { - print STDERR "ERROR: tao_imr returned $result\n"; - $IMR_ACTIVATOR->Kill (); - $IMR_LOCATOR->Kill (); - return 1; - } - $N_SVR->Arguments ("-ORBUseIMR 1 -o $nestea_ior $imr_initref"); $N_SVR->Spawn (); @@ -413,6 +414,18 @@ sub nestea_ir_test $status = 1; } + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator + $TAO_IMR->Arguments ("$imr_initref update nestea_server -l $host -c \"" + . $N_SVR->Executable () + . " -o $nestea_ior\""); + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr returned $result\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + # This should cause the activator to spawn another server. $result = $N_CLI->SpawnWaitKill (20); if ($result != 0) { @@ -420,15 +433,49 @@ sub nestea_ir_test $status = 1; } + $TAO_IMR->Arguments ("$imr_initref shutdown nestea_server"); $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: tao_imr 1 returned $result\n"; $status = 1; } - # Since the second server was started by the activator, it is not - # managed by perl, and we can't wait for it to die. So sleep a few secs. - sleep(5); + # This should destroy the POA, causing another to be created the next time + # the server is spawned. + $TAO_IMR->Arguments ("$imr_initref remove nestea_server"); + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr 1 returned $result\n"; + $status = 1; + } + + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator + $TAO_IMR->Arguments ("$imr_initref add nestea_server -c \"" + . $N_SVR->Executable () + . " -o $nestea_ior\""); + + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr returned $result\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + + # This should cause the activator to spawn another server. + $result = $N_CLI->SpawnWaitKill (20); + if ($result != 0) { + print STDERR "ERROR: nestea client 2 returned $result\n"; + $status = 1; + } + + # This call should block until the server shuts down + $TAO_IMR->Arguments ("$imr_initref shutdown nestea_server"); + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr 1 returned $result\n"; + $status = 1; + } my $implrepo = $IMR_ACTIVATOR->TerminateWaitKill (5); if ($implrepo != 0) { @@ -459,7 +506,7 @@ sub perclient $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { - print STDERR "ERROR: cannot find $implrepo_ior\n"; + print STDERR "ERROR: cannot find $imr_locator_ior\n"; $IMR_LOCATOR->Kill (); return 1; } @@ -474,9 +521,10 @@ sub perclient return 1; } + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator $TAO_IMR->Arguments ("$imr_initref add nestea_server -a PER_CLIENT -c \"" . $N_SVR->Executable () - . " -ORBUseIMR 1 $imr_initref -o $nestea_ior\""); + . " -o $nestea_ior\""); $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: tao_imr returned $result\n"; @@ -538,6 +586,88 @@ sub perclient ############################################################################### +sub shutdown_repo +{ + my $status = 0; + my $result = 0; + + my $imr_initref = "-orbobjrefstyle URL -ORBInitRef ImplRepoService=file://$imr_locator_ior"; + + unlink "test.repo"; + + # Specify an endpoint so that we can restart on the same port. + # Specify persistence so that we can test that shutdown-repo -a works after reconnect + $IMR_LOCATOR->Arguments ("-p test.repo -d 1 -orbendpoint iiop://:8888 -o $imr_locator_ior"); + + unlink $imr_locator_ior; + $IMR_LOCATOR->Spawn (); + if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { + print STDERR "ERROR: cannot find $imr_locator_ior\n"; + $IMR_LOCATOR->Kill (); + return 1; + } + + $IMR_ACTIVATOR->Arguments ("-d 1 -o $imr_activator_ior $imr_initref"); + $IMR_ACTIVATOR->Spawn (); + if (PerlACE::waitforfile_timed ($imr_activator_ior, 30) == -1) { + print STDERR "ERROR: cannot find $imr_activator_ior\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + + # Kill the ImR, but leave the activator running + $TAO_IMR->Arguments ("$imr_initref shutdown-repo"); + $result = $TAO_IMR->SpawnWaitKill (5); + if ($result != 0) { + print STDERR "ERROR: tao_imr returned $result\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + + my $imr_result = $IMR_LOCATOR->WaitKill (5); + if ($imr_result != 0) { + print STDERR "ERROR: ImR returned $imr_result\n"; + return 1; + } + + unlink $imr_locator_ior; + $IMR_LOCATOR->Spawn (); + if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { + print STDERR "ERROR: cannot find $imr_locator_ior\n"; + $IMR_LOCATOR->Kill (); + return 1; + } + + $TAO_IMR->Arguments ("$imr_initref shutdown-repo -a"); + $result = $TAO_IMR->SpawnWaitKill (5); + if ($result != 0) { + print STDERR "ERROR: tao_imr returned $result\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + + $imr_result = $IMR_ACTIVATOR->WaitKill (5); + if ($imr_result != 0) { + print STDERR "ERROR: IMR_Activator returned $imr_result\n"; + return 1; + } + + $imr_result = $IMR_LOCATOR->WaitKill (5); + if ($imr_result != 0) { + print STDERR "ERROR: IMR_Locator returned $imr_result\n"; + return 1; + } + + unlink "test.repo"; + + return $status; +} + +############################################################################### + sub persistent_ir_test { my $status = 0; @@ -550,7 +680,7 @@ sub persistent_ir_test $IMR_LOCATOR->Arguments ("-orbendpoint iiop://:8888 -x $backing_store -d 2 -o $imr_locator_ior"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { - print STDERR "ERROR: cannot find $implrepo_ior\n"; + print STDERR "ERROR: cannot find $imr_locator_ior\n"; $IMR_LOCATOR->Kill (); return 1; } @@ -565,7 +695,13 @@ sub persistent_ir_test return 1; } - $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" . $A_SVR->Executable () . " -ORBUseIMR 1 $refstyle $imr_initref\""); + # Copy the server to a path with spaces to ensure that these + # work corrrectly. + copy ($A_SVR->Executable(), $P_SVR->Executable()); + + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator + $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" + . '\"' . $P_SVR->Executable() . '\"' . "\" " . $refstyle); $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { @@ -582,7 +718,7 @@ sub persistent_ir_test if (PerlACE::waitforfile_timed ($airplane_ior, 10) == -1) { print STDERR "ERROR: cannot find $airplane_ior\n"; - $IMR->Kill (); + $IMR_LOCATOR->Kill (); $A_SVR->Kill (); return 1; } @@ -601,7 +737,7 @@ sub persistent_ir_test $status = 1; } - $result = $A_SVR->WaitKill (10); + $result = $A_SVR->WaitKill (1); if ($result != 0) { print STDERR "ERROR: airplane server returned $result\n"; $status = 1; @@ -623,7 +759,7 @@ sub persistent_ir_test # Since the second server was started by the activator, it is not # managed by perl, and we can't wait for it to die. So sleep a few secs. - sleep(5); + #sleep 2; my $implrepo = $IMR_LOCATOR->TerminateWaitKill (5); if ($implrepo != 0) { @@ -637,7 +773,7 @@ sub persistent_ir_test print "Restarting Implementation Repository.\n"; $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { - print STDERR "ERROR: cannot find $implrepo_ior\n"; + print STDERR "ERROR: cannot find $imr_locator_ior\n"; $IMR_LOCATOR->Kill (); return 1; } @@ -658,17 +794,17 @@ sub persistent_ir_test # Since the second server was started by the activator, it is not # managed by perl, and we can't wait for it to die. So sleep a few secs. - sleep(5); + #sleep 2; - my $implrepo = $IMR_ACTIVATOR->TerminateWaitKill (5); - if ($implrepo != 0) { - print STDERR "ERROR: IMR_Activator returned $implrepo\n"; + my $imr_result = $IMR_ACTIVATOR->TerminateWaitKill (5); + if ($imr_result != 0) { + print STDERR "ERROR: IMR_Activator returned $imr_result\n"; $status = 1; } - $implrepo = $IMR_LOCATOR->TerminateWaitKill (5); - if ($implrepo != 0) { - print STDERR "ERROR: IMR_Locator returned $implrepo\n"; + $imr_result = $IMR_LOCATOR->TerminateWaitKill (5); + if ($imr_result != 0) { + print STDERR "ERROR: IMR_Locator returned $imr_result\n"; $status = 1; } @@ -706,22 +842,21 @@ sub both_ir_test ## starts the server, or at least to write out a different file name ## than the IOR files we're using for the clients. Otherwise a client ## may attempt to use a partially written file. + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator $TAO_IMR->Arguments ("$imr_initref add nestea_server -c \"" . $N_SVR->Executable () - . " -ORBUseIMR 1 $refstyle $imr_initref\""); + . " $refstyle\""); $TAO_IMR->SpawnWaitKill (10); + # No need to specify imr_initref or -orbuseimr 1 for servers spawned by activator $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" . $A_SVR->Executable () - . " -ORBUseIMR 1 $refstyle $imr_initref\""); + . " $refstyle\""); $TAO_IMR->SpawnWaitKill (10); - $N_SVR->Arguments (" -o $nestea_ior -ORBUseIMR 1 $refstyle $imr_initref"); + # launch the servers once, just to get the IORs + $N_SVR->Arguments (" -o $nestea_ior -ORBUseIMR 1 $imr_initref $refstyle"); $N_SVR->Spawn (); - - $A_SVR->Arguments (" -o $airplane_ior -ORBUseIMR 1 $refstyle $imr_initref"); - $A_SVR->Spawn (); - if (PerlACE::waitforfile_timed ($nestea_ior, 10) == -1) { print STDERR "ERROR: cannot find $nestea_ior\n"; $IMR_ACTIVATOR->Kill (); @@ -730,7 +865,11 @@ sub both_ir_test $N_SVR->Kill (); return 1; } - + if ($N_SVR->TerminateWaitKill(10) != 0) { + return 1; + } + $A_SVR->Arguments (" -o $airplane_ior -ORBUseIMR 1 $imr_initref $refstyle"); + $A_SVR->Spawn (); if (PerlACE::waitforfile_timed ($airplane_ior, 10) == -1) { print STDERR "ERROR: cannot find $airplane_ior\n"; $IMR_ACTIVATOR->Kill (); @@ -739,6 +878,9 @@ sub both_ir_test $N_SVR->Kill (); return 1; } + if ($A_SVR->TerminateWaitKill(10) != 0) { + return 1; + } my @clients; @@ -747,28 +889,26 @@ sub both_ir_test push @clients, &create_ncli(); } + # This should spawn one of each server print "\n## Spawning multiple simultaneous clients with both servers running.\n"; map $_->Spawn(), @clients; map $_->WaitKill(30), @clients; $TAO_IMR->Arguments ("$imr_initref shutdown nestea_server"); - $TAO_IMR->SpawnWaitKill (60); - $N_SVR->WaitKill(10); + $TAO_IMR->SpawnWaitKill (15); $TAO_IMR->Arguments ("$imr_initref shutdown airplane_server"); - $TAO_IMR->SpawnWaitKill (60); - $A_SVR->WaitKill(10); + $TAO_IMR->SpawnWaitKill (15); - print "\n## Spawning multiple simultaneous clients with no servers running.\n"; + print "\n\n\n\n## Spawning multiple simultaneous clients with no servers running.\n"; map $_->Spawn(), @clients; map $_->WaitKill(30), @clients; $TAO_IMR->Arguments ("$imr_initref shutdown nestea_server"); - $TAO_IMR->SpawnWaitKill (60); - + $TAO_IMR->SpawnWaitKill (15); $TAO_IMR->Arguments ("$imr_initref shutdown airplane_server"); - $TAO_IMR->SpawnWaitKill (60); + $TAO_IMR->SpawnWaitKill (15); $IMR_ACTIVATOR->Kill (); $IMR_LOCATOR->Kill (); @@ -779,10 +919,10 @@ sub both_ir_test # Parse the arguments -$ret = 0; +my $ret = 0; if ($#ARGV >= 0) { -for ($i = 0; $i <= $#ARGV; $i++) { +for (my $i = 0; $i <= $#ARGV; $i++) { if ($ARGV[$i] eq "-h" || $ARGV[$i] eq "-?") { print "run_test test\n"; print "\n"; @@ -816,6 +956,9 @@ for ($i = 0; $i <= $#ARGV; $i++) { elsif ($ARGV[$i] eq "perclient") { $ret = perclient(); } + elsif ($ARGV[$i] eq "shutdown") { + $ret = shutdown_repo(); + } else { print "run_test: Unknown Option: ".$ARGV[$i]."\n"; } @@ -831,6 +974,7 @@ unlink $nestea_ior; unlink $imr_locator_ior; unlink $imr_activator_ior; unlink $backing_store; -unlink $nestea.dat; +unlink $nestea_dat; +unlink $P_SVR->Executable(); exit $ret; diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp b/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp index 4f03db1f63b..cf8deee844e 100644 --- a/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp +++ b/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp @@ -163,11 +163,10 @@ Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) obj = tmp_poa->id_to_reference_i (server_id.in (), false ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - CORBA::String_var direct_ior = - this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); + CORBA::String_var ior = this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - ior_table->bind (name.c_str(), direct_ior.in () ACE_ENV_ARG_PARAMETER); + ior_table->bind (name.c_str(), ior.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } diff --git a/TAO/orbsvcs/tests/Notify/Reconnecting/run_test.pl b/TAO/orbsvcs/tests/Notify/Reconnecting/run_test.pl index 58a5e109748..0747fc51143 100755 --- a/TAO/orbsvcs/tests/Notify/Reconnecting/run_test.pl +++ b/TAO/orbsvcs/tests/Notify/Reconnecting/run_test.pl @@ -59,7 +59,7 @@ foreach $i (@ARGV) { } my($client_args) = " $eventType $verbose -NoNameSvc -ORBInitRef NotifyEventChannelFactory=corbaloc::localhost:$notify_port/NotifyEventChannelFactory "; -my($ns_args) = " -NoNameSvc -Boot -ORBSvcConf $svcconf -IORoutput $notify_ior -ORBEndpoint iiop://:$notify_port "; +my($ns_args) = " -ORBObjRefStyle url -NoNameSvc -Boot -ORBSvcConf $svcconf -IORoutput $notify_ior -ORBEndpoint iiop://:$notify_port "; #my($ns_args_hidden) = " -NoNameSvc -Boot -ORBSvcConf $svcconf -IORoutput $notify_ior"; # nuke the topology save files so we start clean unlink $save_xml; diff --git a/TAO/tao/ImR_Client/ImR_Client.cpp b/TAO/tao/ImR_Client/ImR_Client.cpp index 6c1be42c8e8..70da4aa13bf 100644 --- a/TAO/tao/ImR_Client/ImR_Client.cpp +++ b/TAO/tao/ImR_Client/ImR_Client.cpp @@ -23,14 +23,14 @@ namespace TAO ImR_Client_Adapter_Impl::imr_notify_startup ( TAO_Root_POA* poa ACE_ENV_ARG_DECL) { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notifying ImR of startup\n")); - CORBA::Object_var imr = poa->orb_core ().implrepo_service (); if (CORBA::is_nil (imr.in ())) return; + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, "Notifying ImR of startup\n")); + ImplementationRepository::Administration_var imr_locator; { @@ -167,11 +167,20 @@ namespace TAO ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } - ACE_CATCH (CORBA::COMM_FAILURE, ex) + ACE_CATCH(CORBA::COMM_FAILURE, ex) { // At the moment we call this during ORB shutdown and the ORB is // configured to drop replies during shutdown (it does by default in // the LF model) we get a COMM_FAILURE exception which we ignore + if (TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "Ignoring COMM_FAILURE while unregistering from ImR.\n")); + ACE_UNUSED_ARG (ex); + } + ACE_CATCH(CORBA::TRANSIENT, ex) + { + // Similarly, there are cases where we could get a TRANSIENT. + if (TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "Ignoring TRANSIENT while unregistering from ImR.\n")); ACE_UNUSED_ARG (ex); } ACE_CATCHANY diff --git a/TAO/tao/ImR_Client/ImplRepo.pidl b/TAO/tao/ImR_Client/ImplRepo.pidl index 8d15ef21da5..16d8eb4dd20 100644 --- a/TAO/tao/ImR_Client/ImplRepo.pidl +++ b/TAO/tao/ImR_Client/ImplRepo.pidl @@ -15,8 +15,7 @@ */ //============================================================================= -///FUZZ: disable check_for_include/ -#include <tao/ImR_Client/ServerObject.pidl> +#include "ServerObject.pidl" module ImplementationRepository { @@ -119,27 +118,11 @@ module ImplementationRepository void activate_server (in string server) raises (NotFound, CannotActivate); - /// Register the <options> to specify how the <server> should be - /// restarted when a client asks for it. - /// - /// The <AlreadyRegistered> exception is raised when <server> has - /// already been registered with the Implementation Repository. - /// The <NotFound> exception is raised when the activator specified - /// in the options is not registered. - void register_server (in string server, - in StartupOptions options) - raises (AlreadyRegistered, NotFound); - - /// Update the <options> to specify how the <server> should be - /// restarted when a client asks for it. Will register the server - /// if not already registered. - /// The <AlreadyRegistered> exception is raised when <server> has - /// already been registered with a different activator. + /// Add/Update the the <server> /// The <NotFound> exception is raised when the activator specified /// in the options is not registered. - void reregister_server (in string server, - in StartupOptions options) - raises(AlreadyRegistered, NotFound); + void add_or_update_server (in string server, in StartupOptions options) + raises(NotFound); /// Remove <server> from the Implementation Repository. /// @@ -175,11 +158,7 @@ module ImplementationRepository raises (NotFound); /// Returns the startup information for a given <server>. - /// - /// The <NotFound> exception is raised when <server> is not found - /// in the Implementation Repository. - void find (in string server, out ServerInformation info) - raises (NotFound); + void find (in string server, out ServerInformation info); /// Returns at most <how_many> servers in <server_list>. If there /// are additional servers, they can be received through the @@ -189,5 +168,9 @@ module ImplementationRepository void list (in unsigned long how_many, out ServerInformationList server_list, out ServerInformationIterator server_iterator); + + /// Shutdown the ImR, optionally shutting down registered + /// activators and servers first. + oneway void shutdown(in boolean activators, in boolean servers); }; }; diff --git a/TAO/tao/ImR_Client/ImplRepoA.cpp b/TAO/tao/ImR_Client/ImplRepoA.cpp deleted file mode 100644 index a2cdbdc12c9..00000000000 --- a/TAO/tao/ImR_Client/ImplRepoA.cpp +++ /dev/null @@ -1,1069 +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 "ImplRepoC.h" -#include "tao/Null_RefCount_Policy.h" -#include "tao/TypeCode_Constants.h" -#include "tao/Alias_TypeCode_Static.h" -#include "tao/Enum_TypeCode_Static.h" -#include "tao/Objref_TypeCode_Static.h" -#include "tao/Sequence_TypeCode_Static.h" -#include "tao/String_TypeCode_Static.h" -#include "tao/Struct_TypeCode_Static.h" -#include "tao/TypeCode_Struct_Field.h" -#include "tao/CDR.h" -#include "tao/Any.h" -#include "tao/Any_Impl_T.h" -#include "tao/Any_Dual_Impl_T.h" -#include "tao/Any_Basic_Impl_T.h" - -// TAO_IDL - Generated from -// be/be_visitor_typecode/struct_typecode.cpp:74 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const * const _tao_fields_ImplementationRepository_AlreadyRegistered = 0; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, - CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_AlreadyRegistered ( - CORBA::tk_except, - "IDL:ImplementationRepository/AlreadyRegistered:1.0", - "AlreadyRegistered", - _tao_fields_ImplementationRepository_AlreadyRegistered, - 0); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_AlreadyRegistered = - &_tao_tc_ImplementationRepository_AlreadyRegistered; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/struct_typecode.cpp:74 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_CannotActivate[] = - { - { "reason", &CORBA::_tc_string } - - }; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, - CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_CannotActivate ( - CORBA::tk_except, - "IDL:ImplementationRepository/CannotActivate:1.0", - "CannotActivate", - _tao_fields_ImplementationRepository_CannotActivate, - 1); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_CannotActivate = - &_tao_tc_ImplementationRepository_CannotActivate; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/struct_typecode.cpp:74 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const * const _tao_fields_ImplementationRepository_NotFound = 0; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, - CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_NotFound ( - CORBA::tk_except, - "IDL:ImplementationRepository/NotFound:1.0", - "NotFound", - _tao_fields_ImplementationRepository_NotFound, - 0); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_NotFound = - &_tao_tc_ImplementationRepository_NotFound; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/struct_typecode.cpp:74 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_EnvironmentVariable[] = - { - { "name", &CORBA::_tc_string }, - { "value", &CORBA::_tc_string } - - }; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, - CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_EnvironmentVariable ( - CORBA::tk_struct, - "IDL:ImplementationRepository/EnvironmentVariable:1.0", - "EnvironmentVariable", - _tao_fields_ImplementationRepository_EnvironmentVariable, - 2); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_EnvironmentVariable = - &_tao_tc_ImplementationRepository_EnvironmentVariable; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/alias_typecode.cpp:31 - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/typecode_defn.cpp:925 - - -#ifndef _TAO_TYPECODE_ImplementationRepository_EnvironmentList_GUARD -#define _TAO_TYPECODE_ImplementationRepository_EnvironmentList_GUARD -namespace TAO -{ - namespace TypeCode - { - TAO::TypeCode::Sequence< ::CORBA::TypeCode_ptr const *, - TAO::Null_RefCount_Policy> - ImplementationRepository_EnvironmentList_0 ( - CORBA::tk_sequence, - &ImplementationRepository::_tc_EnvironmentVariable, - 0U); - - ::CORBA::TypeCode_ptr const tc_ImplementationRepository_EnvironmentList_0 = - &ImplementationRepository_EnvironmentList_0; - - } -} - - -#endif /* _TAO_TYPECODE_ImplementationRepository_EnvironmentList_GUARD */ -static TAO::TypeCode::Alias<char const *, - CORBA::TypeCode_ptr const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_EnvironmentList ( - CORBA::tk_alias, - "IDL:ImplementationRepository/EnvironmentList:1.0", - "EnvironmentList", - &TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_EnvironmentList = - &_tao_tc_ImplementationRepository_EnvironmentList; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/enum_typecode.cpp:34 - -static char const * const _tao_enumerators_ImplementationRepository_ActivationMode[] = - { - "NORMAL", - "MANUAL", - "PER_CLIENT", - "AUTO_START" - - }; - -static TAO::TypeCode::Enum<char const *, - char const * const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_ActivationMode ( - "IDL:ImplementationRepository/ActivationMode:1.0", - "ActivationMode", - _tao_enumerators_ImplementationRepository_ActivationMode, - 4); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_ActivationMode = - &_tao_tc_ImplementationRepository_ActivationMode; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/struct_typecode.cpp:74 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_StartupOptions[] = - { - { "command_line", &CORBA::_tc_string }, - { "environment", &ImplementationRepository::_tc_EnvironmentList }, - { "working_directory", &CORBA::_tc_string }, - { "activation", &ImplementationRepository::_tc_ActivationMode }, - { "activator", &CORBA::_tc_string }, - { "start_limit", &CORBA::_tc_long } - - }; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, - CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_StartupOptions ( - CORBA::tk_struct, - "IDL:ImplementationRepository/StartupOptions:1.0", - "StartupOptions", - _tao_fields_ImplementationRepository_StartupOptions, - 6); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_StartupOptions = - &_tao_tc_ImplementationRepository_StartupOptions; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/struct_typecode.cpp:74 - -static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_ServerInformation[] = - { - { "server", &CORBA::_tc_string }, - { "startup", &ImplementationRepository::_tc_StartupOptions }, - { "partial_ior", &CORBA::_tc_string } - - }; -static TAO::TypeCode::Struct<char const *, - CORBA::TypeCode_ptr const *, - TAO::TypeCode::Struct_Field<char const *, - CORBA::TypeCode_ptr const *> const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_ServerInformation ( - CORBA::tk_struct, - "IDL:ImplementationRepository/ServerInformation:1.0", - "ServerInformation", - _tao_fields_ImplementationRepository_ServerInformation, - 3); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_ServerInformation = - &_tao_tc_ImplementationRepository_ServerInformation; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/alias_typecode.cpp:31 - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/typecode_defn.cpp:925 - - -#ifndef _TAO_TYPECODE_ImplementationRepository_ServerInformationList_GUARD -#define _TAO_TYPECODE_ImplementationRepository_ServerInformationList_GUARD -namespace TAO -{ - namespace TypeCode - { - TAO::TypeCode::Sequence< ::CORBA::TypeCode_ptr const *, - TAO::Null_RefCount_Policy> - ImplementationRepository_ServerInformationList_0 ( - CORBA::tk_sequence, - &ImplementationRepository::_tc_ServerInformation, - 0U); - - ::CORBA::TypeCode_ptr const tc_ImplementationRepository_ServerInformationList_0 = - &ImplementationRepository_ServerInformationList_0; - - } -} - - -#endif /* _TAO_TYPECODE_ImplementationRepository_ServerInformationList_GUARD */ -static TAO::TypeCode::Alias<char const *, - CORBA::TypeCode_ptr const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_ServerInformationList ( - CORBA::tk_alias, - "IDL:ImplementationRepository/ServerInformationList:1.0", - "ServerInformationList", - &TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_ServerInformationList = - &_tao_tc_ImplementationRepository_ServerInformationList; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/objref_typecode.cpp:76 - -static TAO::TypeCode::Objref<char const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_ServerInformationIterator ( - CORBA::tk_objref, - "IDL:ImplementationRepository/ServerInformationIterator:1.0", - "ServerInformationIterator"); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_ServerInformationIterator = - &_tao_tc_ImplementationRepository_ServerInformationIterator; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_typecode/objref_typecode.cpp:76 - -static TAO::TypeCode::Objref<char const *, - TAO::Null_RefCount_Policy> - _tao_tc_ImplementationRepository_Administration ( - CORBA::tk_objref, - "IDL:ImplementationRepository/Administration:1.0", - "Administration"); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr const _tc_Administration = - &_tao_tc_ImplementationRepository_Administration; -} - - - -// TAO_IDL - Generated from -// be/be_visitor_exception/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::demarshal_value ( - TAO_InputCDR & cdr - ) - { - CORBA::String_var id; - - if (!(cdr >> id.out ())) - { - return false; - } - - ACE_TRY_NEW_ENV - { - this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return false; - } - ACE_ENDTRY; - - return true; - } -} - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::AlreadyRegistered &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::insert_copy ( - _tao_any, - ImplementationRepository::AlreadyRegistered::_tao_any_destructor, - ImplementationRepository::_tc_AlreadyRegistered, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::AlreadyRegistered *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::insert ( - _tao_any, - ImplementationRepository::AlreadyRegistered::_tao_any_destructor, - ImplementationRepository::_tc_AlreadyRegistered, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::AlreadyRegistered *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::AlreadyRegistered *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::AlreadyRegistered *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::extract ( - _tao_any, - ImplementationRepository::AlreadyRegistered::_tao_any_destructor, - ImplementationRepository::_tc_AlreadyRegistered, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_exception/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::demarshal_value ( - TAO_InputCDR & cdr - ) - { - CORBA::String_var id; - - if (!(cdr >> id.out ())) - { - return false; - } - - ACE_TRY_NEW_ENV - { - this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return false; - } - ACE_ENDTRY; - - return true; - } -} - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::CannotActivate &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::insert_copy ( - _tao_any, - ImplementationRepository::CannotActivate::_tao_any_destructor, - ImplementationRepository::_tc_CannotActivate, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::CannotActivate *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::insert ( - _tao_any, - ImplementationRepository::CannotActivate::_tao_any_destructor, - ImplementationRepository::_tc_CannotActivate, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::CannotActivate *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::CannotActivate *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::CannotActivate *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::extract ( - _tao_any, - ImplementationRepository::CannotActivate::_tao_any_destructor, - ImplementationRepository::_tc_CannotActivate, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_exception/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Dual_Impl_T<ImplementationRepository::NotFound>::demarshal_value ( - TAO_InputCDR & cdr - ) - { - CORBA::String_var id; - - if (!(cdr >> id.out ())) - { - return false; - } - - ACE_TRY_NEW_ENV - { - this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return false; - } - ACE_ENDTRY; - - return true; - } -} - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::NotFound &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::insert_copy ( - _tao_any, - ImplementationRepository::NotFound::_tao_any_destructor, - ImplementationRepository::_tc_NotFound, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::NotFound *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::insert ( - _tao_any, - ImplementationRepository::NotFound::_tao_any_destructor, - ImplementationRepository::_tc_NotFound, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::NotFound *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::NotFound *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::NotFound *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::extract ( - _tao_any, - ImplementationRepository::NotFound::_tao_any_destructor, - ImplementationRepository::_tc_NotFound, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_structure/any_op_cs.cpp:54 - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::EnvironmentVariable &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentVariable>::insert_copy ( - _tao_any, - ImplementationRepository::EnvironmentVariable::_tao_any_destructor, - ImplementationRepository::_tc_EnvironmentVariable, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::EnvironmentVariable *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentVariable>::insert ( - _tao_any, - ImplementationRepository::EnvironmentVariable::_tao_any_destructor, - ImplementationRepository::_tc_EnvironmentVariable, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::EnvironmentVariable *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::EnvironmentVariable *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::EnvironmentVariable *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentVariable>::extract ( - _tao_any, - ImplementationRepository::EnvironmentVariable::_tao_any_destructor, - ImplementationRepository::_tc_EnvironmentVariable, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_sequence/any_op_cs.cpp:54 - - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::EnvironmentList &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentList>::insert_copy ( - _tao_any, - ImplementationRepository::EnvironmentList::_tao_any_destructor, - TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::EnvironmentList *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentList>::insert ( - _tao_any, - ImplementationRepository::EnvironmentList::_tao_any_destructor, - TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::EnvironmentList *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::EnvironmentList *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::EnvironmentList *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentList>::extract ( - _tao_any, - ImplementationRepository::EnvironmentList::_tao_any_destructor, - TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_enum/any_op_cs.cpp:52 - -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ActivationMode _tao_elem - ) -{ - TAO::Any_Basic_Impl_T<ImplementationRepository::ActivationMode>::insert ( - _tao_any, - ImplementationRepository::_tc_ActivationMode, - _tao_elem - ); -} - -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::ActivationMode &_tao_elem - ) -{ - return - TAO::Any_Basic_Impl_T<ImplementationRepository::ActivationMode>::extract ( - _tao_any, - ImplementationRepository::_tc_ActivationMode, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_structure/any_op_cs.cpp:54 - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::StartupOptions &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::StartupOptions>::insert_copy ( - _tao_any, - ImplementationRepository::StartupOptions::_tao_any_destructor, - ImplementationRepository::_tc_StartupOptions, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::StartupOptions *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::StartupOptions>::insert ( - _tao_any, - ImplementationRepository::StartupOptions::_tao_any_destructor, - ImplementationRepository::_tc_StartupOptions, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::StartupOptions *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::StartupOptions *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::StartupOptions *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::StartupOptions>::extract ( - _tao_any, - ImplementationRepository::StartupOptions::_tao_any_destructor, - ImplementationRepository::_tc_StartupOptions, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_structure/any_op_cs.cpp:54 - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::ServerInformation &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformation>::insert_copy ( - _tao_any, - ImplementationRepository::ServerInformation::_tao_any_destructor, - ImplementationRepository::_tc_ServerInformation, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ServerInformation *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformation>::insert ( - _tao_any, - ImplementationRepository::ServerInformation::_tao_any_destructor, - ImplementationRepository::_tc_ServerInformation, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::ServerInformation *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::ServerInformation *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::ServerInformation *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformation>::extract ( - _tao_any, - ImplementationRepository::ServerInformation::_tao_any_destructor, - ImplementationRepository::_tc_ServerInformation, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_sequence/any_op_cs.cpp:54 - - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::ServerInformationList &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformationList>::insert_copy ( - _tao_any, - ImplementationRepository::ServerInformationList::_tao_any_destructor, - TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ServerInformationList *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformationList>::insert ( - _tao_any, - ImplementationRepository::ServerInformationList::_tao_any_destructor, - TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::ServerInformationList *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::ServerInformationList *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::ServerInformationList *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformationList>::extract ( - _tao_any, - ImplementationRepository::ServerInformationList::_tao_any_destructor, - TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_interface/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Impl_T<ImplementationRepository::ServerInformationIterator>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const - { - _tao_elem = CORBA::Object::_duplicate (this->value_); - return true; - } -} - -// Copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ServerInformationIterator_ptr _tao_elem - ) -{ - ImplementationRepository::ServerInformationIterator_ptr _tao_objptr = - ImplementationRepository::ServerInformationIterator::_duplicate (_tao_elem); - _tao_any <<= &_tao_objptr; -} - -// Non-copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ServerInformationIterator_ptr *_tao_elem - ) -{ - TAO::Any_Impl_T<ImplementationRepository::ServerInformationIterator>::insert ( - _tao_any, - ImplementationRepository::ServerInformationIterator::_tao_any_destructor, - ImplementationRepository::_tc_ServerInformationIterator, - *_tao_elem - ); -} - -CORBA::Boolean -operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::ServerInformationIterator_ptr &_tao_elem - ) -{ - return - TAO::Any_Impl_T<ImplementationRepository::ServerInformationIterator>::extract ( - _tao_any, - ImplementationRepository::ServerInformationIterator::_tao_any_destructor, - ImplementationRepository::_tc_ServerInformationIterator, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// be/be_visitor_interface/any_op_cs.cpp:50 - -namespace TAO -{ - template<> - CORBA::Boolean - Any_Impl_T<ImplementationRepository::Administration>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const - { - _tao_elem = CORBA::Object::_duplicate (this->value_); - return true; - } -} - -// Copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::Administration_ptr _tao_elem - ) -{ - ImplementationRepository::Administration_ptr _tao_objptr = - ImplementationRepository::Administration::_duplicate (_tao_elem); - _tao_any <<= &_tao_objptr; -} - -// Non-copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::Administration_ptr *_tao_elem - ) -{ - TAO::Any_Impl_T<ImplementationRepository::Administration>::insert ( - _tao_any, - ImplementationRepository::Administration::_tao_any_destructor, - ImplementationRepository::_tc_Administration, - *_tao_elem - ); -} - -CORBA::Boolean -operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::Administration_ptr &_tao_elem - ) -{ - return - TAO::Any_Impl_T<ImplementationRepository::Administration>::extract ( - _tao_any, - ImplementationRepository::Administration::_tao_any_destructor, - ImplementationRepository::_tc_Administration, - _tao_elem - ); -} diff --git a/TAO/tao/ImR_Client/ImplRepoC.cpp b/TAO/tao/ImR_Client/ImplRepoC.cpp index f859491a6c1..73b23df89b3 100644 --- a/TAO/tao/ImR_Client/ImplRepoC.cpp +++ b/TAO/tao/ImR_Client/ImplRepoC.cpp @@ -26,7 +26,7 @@ // http://www.cs.wustl.edu/~schmidt/TAO.html // TAO_IDL - Generated from -// be\be_codegen.cpp:291 +// .\be\be_codegen.cpp:291 #include "ImplRepoC.h" @@ -34,6 +34,19 @@ #include "tao/Exception_Data.h" #include "tao/Invocation_Adapter.h" #include "tao/Object_T.h" +#include "tao/Null_RefCount_Policy.h" +#include "tao/TypeCode_Constants.h" +#include "tao/Alias_TypeCode_Static.h" +#include "tao/Enum_TypeCode_Static.h" +#include "tao/Objref_TypeCode_Static.h" +#include "tao/Sequence_TypeCode_Static.h" +#include "tao/String_TypeCode_Static.h" +#include "tao/Struct_TypeCode_Static.h" +#include "tao/TypeCode_Struct_Field.h" +#include "tao/Recursive_Type_TypeCode.h" +#include "tao/Any_Impl_T.h" +#include "tao/Any_Dual_Impl_T.h" +#include "tao/Any_Basic_Impl_T.h" #include "tao/Basic_Arguments.h" #include "tao/Object_Argument_T.h" #include "tao/Special_Basic_Arguments.h" @@ -50,7 +63,7 @@ #endif /* !defined INLINE */ // TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:69 +// .\be\be_visitor_arg_traits.cpp:69 // Arg traits specializations. namespace TAO @@ -58,7 +71,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_CS_) #define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_CS_ - + template<> class Arg_Traits<ImplementationRepository::ServerObject> : public @@ -72,13 +85,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:751 + // .\be\be_visitor_arg_traits.cpp:772 #if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_CS_) #define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_CS_ - + template<> class Arg_Traits<ImplementationRepository::StartupOptions> : public @@ -91,13 +104,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:751 + // .\be\be_visitor_arg_traits.cpp:772 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_CS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_CS_ - + template<> class Arg_Traits<ImplementationRepository::ServerInformation> : public @@ -110,13 +123,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:496 + // .\be\be_visitor_arg_traits.cpp:489 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_CS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_CS_ - + template<> class Arg_Traits<ImplementationRepository::ServerInformationList> : public @@ -132,7 +145,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_CS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_CS_ - + template<> class Arg_Traits<ImplementationRepository::ServerInformationIterator> : public @@ -149,8 +162,8 @@ namespace TAO } -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_cs.cpp:63 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_cs.cpp:63 ImplementationRepository::AlreadyRegistered::AlreadyRegistered (void) : CORBA::UserException ( @@ -231,7 +244,7 @@ void ImplementationRepository::AlreadyRegistered::_tao_encode ( { return; } - + ACE_THROW (CORBA::MARSHAL ()); } @@ -244,7 +257,7 @@ void ImplementationRepository::AlreadyRegistered::_tao_decode ( { return; } - + ACE_THROW (CORBA::MARSHAL ()); } @@ -254,8 +267,31 @@ CORBA::TypeCode_ptr ImplementationRepository::AlreadyRegistered::_tao_type (void return ::ImplementationRepository::_tc_AlreadyRegistered; } -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_cs.cpp:63 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/struct_typecode.cpp:87 + +static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const * const _tao_fields_ImplementationRepository_AlreadyRegistered = 0; +static TAO::TypeCode::Struct<char const *, + CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_AlreadyRegistered ( + CORBA::tk_except, + "IDL:ImplementationRepository/AlreadyRegistered:1.0", + "AlreadyRegistered", + _tao_fields_ImplementationRepository_AlreadyRegistered, + 0); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_AlreadyRegistered = + &_tao_tc_ImplementationRepository_AlreadyRegistered; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_cs.cpp:63 ImplementationRepository::CannotActivate::CannotActivate (void) : CORBA::UserException ( @@ -338,7 +374,7 @@ void ImplementationRepository::CannotActivate::_tao_encode ( { return; } - + ACE_THROW (CORBA::MARSHAL ()); } @@ -351,14 +387,14 @@ void ImplementationRepository::CannotActivate::_tao_decode ( { return; } - + ACE_THROW (CORBA::MARSHAL ()); } // TAO_IDL - Generated from -// be\be_visitor_exception/exception_ctor.cpp:66 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ctor.cpp:66 ImplementationRepository::CannotActivate::CannotActivate ( const char * _tao_reason @@ -377,8 +413,35 @@ CORBA::TypeCode_ptr ImplementationRepository::CannotActivate::_tao_type (void) c return ::ImplementationRepository::_tc_CannotActivate; } -// TAO_IDL - Generated from -// be\be_visitor_exception/exception_cs.cpp:63 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/struct_typecode.cpp:87 + +static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_CannotActivate[] = + { + { "reason", &CORBA::_tc_string } + + }; +static TAO::TypeCode::Struct<char const *, + CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_CannotActivate ( + CORBA::tk_except, + "IDL:ImplementationRepository/CannotActivate:1.0", + "CannotActivate", + _tao_fields_ImplementationRepository_CannotActivate, + 1); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_CannotActivate = + &_tao_tc_ImplementationRepository_CannotActivate; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_cs.cpp:63 ImplementationRepository::NotFound::NotFound (void) : CORBA::UserException ( @@ -459,7 +522,7 @@ void ImplementationRepository::NotFound::_tao_encode ( { return; } - + ACE_THROW (CORBA::MARSHAL ()); } @@ -472,7 +535,7 @@ void ImplementationRepository::NotFound::_tao_decode ( { return; } - + ACE_THROW (CORBA::MARSHAL ()); } @@ -482,10 +545,61 @@ CORBA::TypeCode_ptr ImplementationRepository::NotFound::_tao_type (void) const return ::ImplementationRepository::_tc_NotFound; } -// TAO_IDL - Generated from -// be\be_visitor_structure/structure_cs.cpp:66 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/struct_typecode.cpp:87 + +static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const * const _tao_fields_ImplementationRepository_NotFound = 0; +static TAO::TypeCode::Struct<char const *, + CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_NotFound ( + CORBA::tk_except, + "IDL:ImplementationRepository/NotFound:1.0", + "NotFound", + _tao_fields_ImplementationRepository_NotFound, + 0); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_NotFound = + &_tao_tc_ImplementationRepository_NotFound; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/struct_typecode.cpp:87 + +static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_EnvironmentVariable[] = + { + { "name", &CORBA::_tc_string }, + { "value", &CORBA::_tc_string } + + }; +static TAO::TypeCode::Struct<char const *, + CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_EnvironmentVariable ( + CORBA::tk_struct, + "IDL:ImplementationRepository/EnvironmentVariable:1.0", + "EnvironmentVariable", + _tao_fields_ImplementationRepository_EnvironmentVariable, + 2); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_EnvironmentVariable = + &_tao_tc_ImplementationRepository_EnvironmentVariable; +} + -void + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/structure_cs.cpp:66 + +void ImplementationRepository::EnvironmentVariable::_tao_any_destructor ( void *_tao_void_pointer ) @@ -495,8 +609,8 @@ ImplementationRepository::EnvironmentVariable::_tao_any_destructor ( delete _tao_tmp_pointer; } -// TAO_IDL - Generated from -// be\be_visitor_sequence/sequence_cs.cpp:65 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/sequence_cs.cpp:65 #if !defined (_IMPLEMENTATIONREPOSITORY_ENVIRONMENTLIST_CS_) #define _IMPLEMENTATIONREPOSITORY_ENVIRONMENTLIST_CS_ @@ -548,10 +662,124 @@ void ImplementationRepository::EnvironmentList::_tao_any_destructor ( #endif /* end #if !defined */ -// TAO_IDL - Generated from -// be\be_visitor_structure/structure_cs.cpp:66 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/alias_typecode.cpp:31 + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_defn.cpp:937 + + +#ifndef _TAO_TYPECODE_ImplementationRepository_EnvironmentList_GUARD +#define _TAO_TYPECODE_ImplementationRepository_EnvironmentList_GUARD +namespace TAO +{ + namespace TypeCode + { + TAO::TypeCode::Sequence< ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + ImplementationRepository_EnvironmentList_0 ( + CORBA::tk_sequence, + &ImplementationRepository::_tc_EnvironmentVariable, + 0U); + + ::CORBA::TypeCode_ptr const tc_ImplementationRepository_EnvironmentList_0 = + &ImplementationRepository_EnvironmentList_0; + + } +} + + +#endif /* _TAO_TYPECODE_ImplementationRepository_EnvironmentList_GUARD */ + +static TAO::TypeCode::Alias<char const *, + CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_EnvironmentList ( + CORBA::tk_alias, + "IDL:ImplementationRepository/EnvironmentList:1.0", + "EnvironmentList", + &TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_EnvironmentList = + &_tao_tc_ImplementationRepository_EnvironmentList; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/enum_typecode.cpp:34 + +static char const * const _tao_enumerators_ImplementationRepository_ActivationMode[] = + { + "NORMAL", + "MANUAL", + "PER_CLIENT", + "AUTO_START" + + }; + +static TAO::TypeCode::Enum<char const *, + char const * const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_ActivationMode ( + "IDL:ImplementationRepository/ActivationMode:1.0", + "ActivationMode", + _tao_enumerators_ImplementationRepository_ActivationMode, + 4); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_ActivationMode = + &_tao_tc_ImplementationRepository_ActivationMode; +} + + -void +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/struct_typecode.cpp:87 + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_defn.cpp:937 + +static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_StartupOptions[] = + { + { "command_line", &CORBA::_tc_string }, + { "environment", &ImplementationRepository::_tc_EnvironmentList }, + { "working_directory", &CORBA::_tc_string }, + { "activation", &ImplementationRepository::_tc_ActivationMode }, + { "activator", &CORBA::_tc_string }, + { "start_limit", &CORBA::_tc_long } + + }; +static TAO::TypeCode::Struct<char const *, + CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_StartupOptions ( + CORBA::tk_struct, + "IDL:ImplementationRepository/StartupOptions:1.0", + "StartupOptions", + _tao_fields_ImplementationRepository_StartupOptions, + 6); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_StartupOptions = + &_tao_tc_ImplementationRepository_StartupOptions; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/structure_cs.cpp:66 + +void ImplementationRepository::StartupOptions::_tao_any_destructor ( void *_tao_void_pointer ) @@ -561,10 +789,39 @@ ImplementationRepository::StartupOptions::_tao_any_destructor ( delete _tao_tmp_pointer; } -// TAO_IDL - Generated from -// be\be_visitor_structure/structure_cs.cpp:66 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/struct_typecode.cpp:87 -void +static TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const _tao_fields_ImplementationRepository_ServerInformation[] = + { + { "server", &CORBA::_tc_string }, + { "startup", &ImplementationRepository::_tc_StartupOptions }, + { "partial_ior", &CORBA::_tc_string } + + }; +static TAO::TypeCode::Struct<char const *, + CORBA::TypeCode_ptr const *, + TAO::TypeCode::Struct_Field<char const *, CORBA::TypeCode_ptr const *> const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_ServerInformation ( + CORBA::tk_struct, + "IDL:ImplementationRepository/ServerInformation:1.0", + "ServerInformation", + _tao_fields_ImplementationRepository_ServerInformation, + 3); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_ServerInformation = + &_tao_tc_ImplementationRepository_ServerInformation; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/structure_cs.cpp:66 + +void ImplementationRepository::ServerInformation::_tao_any_destructor ( void *_tao_void_pointer ) @@ -574,8 +831,8 @@ ImplementationRepository::ServerInformation::_tao_any_destructor ( delete _tao_tmp_pointer; } -// TAO_IDL - Generated from -// be\be_visitor_sequence/sequence_cs.cpp:65 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/sequence_cs.cpp:65 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST_CS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST_CS_ @@ -628,7 +885,55 @@ void ImplementationRepository::ServerInformationList::_tao_any_destructor ( #endif /* end #if !defined */ // TAO_IDL - Generated from -// be\be_visitor_interface/interface_cs.cpp:60 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/alias_typecode.cpp:31 + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_defn.cpp:937 + + +#ifndef _TAO_TYPECODE_ImplementationRepository_ServerInformationList_GUARD +#define _TAO_TYPECODE_ImplementationRepository_ServerInformationList_GUARD +namespace TAO +{ + namespace TypeCode + { + TAO::TypeCode::Sequence< ::CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + ImplementationRepository_ServerInformationList_0 ( + CORBA::tk_sequence, + &ImplementationRepository::_tc_ServerInformation, + 0U); + + ::CORBA::TypeCode_ptr const tc_ImplementationRepository_ServerInformationList_0 = + &ImplementationRepository_ServerInformationList_0; + + } +} + + +#endif /* _TAO_TYPECODE_ImplementationRepository_ServerInformationList_GUARD */ + +static TAO::TypeCode::Alias<char const *, + CORBA::TypeCode_ptr const *, + TAO::Null_RefCount_Policy> + _tao_tc_ImplementationRepository_ServerInformationList ( + CORBA::tk_alias, + "IDL:ImplementationRepository/ServerInformationList:1.0", + "ServerInformationList", + &TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_ServerInformationList = + &_tao_tc_ImplementationRepository_ServerInformationList; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 // Traits specializations for ImplementationRepository::ServerInformationIterator. @@ -664,13 +969,13 @@ TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator>::marshal } // Function pointer for collocation factory initialization. -TAO::Collocation_Proxy_Broker * +TAO::Collocation_Proxy_Broker * (*ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer) ( CORBA::Object_ptr obj ) = 0; // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 CORBA::Boolean ImplementationRepository::ServerInformationIterator::next_n ( ::CORBA::ULong how_many, @@ -685,23 +990,23 @@ CORBA::Boolean ImplementationRepository::ServerInformationIterator::next_n ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_ServerInformationIterator_Proxy_Broker_ == 0) { ImplementationRepository_ServerInformationIterator_setup_collocation (); } - + TAO::Arg_Traits< ::ACE_InputCDR::to_boolean>::ret_val _tao_retval; TAO::Arg_Traits< ::CORBA::ULong>::in_arg_val _tao_how_many (how_many); TAO::Arg_Traits< ImplementationRepository::ServerInformationList>::out_arg_val _tao_servers (servers); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_how_many, &_tao_servers }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -710,15 +1015,15 @@ CORBA::Boolean ImplementationRepository::ServerInformationIterator::next_n ( 6, this->the_TAO_ServerInformationIterator_Proxy_Broker_ ); - + _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (_tao_retval.excp ()); - + return _tao_retval.retn (); } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::ServerInformationIterator::destroy ( ACE_ENV_SINGLE_ARG_DECL @@ -731,19 +1036,19 @@ void ImplementationRepository::ServerInformationIterator::destroy ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_ServerInformationIterator_Proxy_Broker_ == 0) { ImplementationRepository_ServerInformationIterator_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -752,7 +1057,7 @@ void ImplementationRepository::ServerInformationIterator::destroy ( 7, this->the_TAO_ServerInformationIterator_Proxy_Broker_ ); - + _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); ACE_CHECK; } @@ -776,7 +1081,7 @@ ImplementationRepository::ServerInformationIterator::ImplementationRepository_Se ImplementationRepository::ServerInformationIterator::~ServerInformationIterator (void) {} -void +void ImplementationRepository::ServerInformationIterator::_tao_any_destructor (void *_tao_void_pointer) { ServerInformationIterator *_tao_tmp_pointer = @@ -821,7 +1126,7 @@ ImplementationRepository::ServerInformationIterator::_duplicate (ServerInformati { obj->_add_ref (); } - + return obj; } @@ -871,7 +1176,25 @@ ImplementationRepository::ServerInformationIterator::marshal (TAO_OutputCDR &cdr } // TAO_IDL - Generated from -// be\be_visitor_interface/interface_cs.cpp:60 +// c:\cvsdoc\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_ImplementationRepository_ServerInformationIterator ( + CORBA::tk_objref, + "IDL:ImplementationRepository/ServerInformationIterator:1.0", + "ServerInformationIterator"); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_ServerInformationIterator = + &_tao_tc_ImplementationRepository_ServerInformationIterator; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_cs.cpp:60 // Traits specializations for ImplementationRepository::Administration. @@ -907,13 +1230,13 @@ TAO::Objref_Traits<ImplementationRepository::Administration>::marshal ( } // Function pointer for collocation factory initialization. -TAO::Collocation_Proxy_Broker * +TAO::Collocation_Proxy_Broker * (*ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer) ( CORBA::Object_ptr obj ) = 0; // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::activate_server ( const char * server @@ -929,37 +1252,37 @@ void ImplementationRepository::Administration::activate_server ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_server }; - + static TAO::Exception_Data - _tao_ImplementationRepository_Administration_activate_server_exceptiondata [] = + _tao_ImplementationRepository_Administration_activate_server_exceptiondata [] = { { "IDL:ImplementationRepository/NotFound:1.0", ImplementationRepository::NotFound::_alloc, ImplementationRepository::_tc_NotFound }, - + { "IDL:ImplementationRepository/CannotActivate:1.0", ImplementationRepository::CannotActivate::_alloc, ImplementationRepository::_tc_CannotActivate } }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -968,7 +1291,7 @@ void ImplementationRepository::Administration::activate_server ( 15, this->the_TAO_Administration_Proxy_Broker_ ); - + _tao_call.invoke ( _tao_ImplementationRepository_Administration_activate_server_exceptiondata, 2 @@ -978,16 +1301,15 @@ void ImplementationRepository::Administration::activate_server ( } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 -void ImplementationRepository::Administration::register_server ( +void ImplementationRepository::Administration::add_or_update_server ( const char * server, const ::ImplementationRepository::StartupOptions & options ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, ::ImplementationRepository::NotFound )) { @@ -995,126 +1317,52 @@ void ImplementationRepository::Administration::register_server ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); TAO::Arg_Traits< ImplementationRepository::StartupOptions>::in_arg_val _tao_options (options); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_server, &_tao_options }; - + static TAO::Exception_Data - _tao_ImplementationRepository_Administration_register_server_exceptiondata [] = + _tao_ImplementationRepository_Administration_add_or_update_server_exceptiondata [] = { { - "IDL:ImplementationRepository/AlreadyRegistered:1.0", - ImplementationRepository::AlreadyRegistered::_alloc, - ImplementationRepository::_tc_AlreadyRegistered - }, - - { "IDL:ImplementationRepository/NotFound:1.0", ImplementationRepository::NotFound::_alloc, ImplementationRepository::_tc_NotFound } }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, 3, - "register_server", - 15, + "add_or_update_server", + 20, this->the_TAO_Administration_Proxy_Broker_ ); - + _tao_call.invoke ( - _tao_ImplementationRepository_Administration_register_server_exceptiondata, - 2 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::reregister_server ( - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Administration_Proxy_Broker_ == 0) - { - ImplementationRepository_Administration_setup_collocation (); - } - - TAO::Arg_Traits< void>::ret_val _tao_retval; - TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); - TAO::Arg_Traits< ImplementationRepository::StartupOptions>::in_arg_val _tao_options (options); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_options - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_reregister_server_exceptiondata [] = - { - { - "IDL:ImplementationRepository/AlreadyRegistered:1.0", - ImplementationRepository::AlreadyRegistered::_alloc, - ImplementationRepository::_tc_AlreadyRegistered - }, - - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 3, - "reregister_server", - 17, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_reregister_server_exceptiondata, - 2 + _tao_ImplementationRepository_Administration_add_or_update_server_exceptiondata, + 1 ACE_ENV_ARG_PARAMETER ); ACE_CHECK; } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::remove_server ( const char * server @@ -1129,23 +1377,23 @@ void ImplementationRepository::Administration::remove_server ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_server }; - + static TAO::Exception_Data - _tao_ImplementationRepository_Administration_remove_server_exceptiondata [] = + _tao_ImplementationRepository_Administration_remove_server_exceptiondata [] = { { "IDL:ImplementationRepository/NotFound:1.0", @@ -1153,7 +1401,7 @@ void ImplementationRepository::Administration::remove_server ( ImplementationRepository::_tc_NotFound } }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -1162,7 +1410,7 @@ void ImplementationRepository::Administration::remove_server ( 13, this->the_TAO_Administration_Proxy_Broker_ ); - + _tao_call.invoke ( _tao_ImplementationRepository_Administration_remove_server_exceptiondata, 1 @@ -1172,7 +1420,7 @@ void ImplementationRepository::Administration::remove_server ( } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::shutdown_server ( const char * server @@ -1187,23 +1435,23 @@ void ImplementationRepository::Administration::shutdown_server ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_server }; - + static TAO::Exception_Data - _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata [] = + _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata [] = { { "IDL:ImplementationRepository/NotFound:1.0", @@ -1211,7 +1459,7 @@ void ImplementationRepository::Administration::shutdown_server ( ImplementationRepository::_tc_NotFound } }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -1220,7 +1468,7 @@ void ImplementationRepository::Administration::shutdown_server ( 15, this->the_TAO_Administration_Proxy_Broker_ ); - + _tao_call.invoke ( _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata, 1 @@ -1230,7 +1478,7 @@ void ImplementationRepository::Administration::shutdown_server ( } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::server_is_running ( const char * server, @@ -1247,17 +1495,17 @@ void ImplementationRepository::Administration::server_is_running ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_partial_ior (partial_ior); TAO::Arg_Traits< ImplementationRepository::ServerObject>::in_arg_val _tao_server_object (server_object); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, @@ -1265,9 +1513,9 @@ void ImplementationRepository::Administration::server_is_running ( &_tao_partial_ior, &_tao_server_object }; - + static TAO::Exception_Data - _tao_ImplementationRepository_Administration_server_is_running_exceptiondata [] = + _tao_ImplementationRepository_Administration_server_is_running_exceptiondata [] = { { "IDL:ImplementationRepository/NotFound:1.0", @@ -1275,7 +1523,7 @@ void ImplementationRepository::Administration::server_is_running ( ImplementationRepository::_tc_NotFound } }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -1284,7 +1532,7 @@ void ImplementationRepository::Administration::server_is_running ( 17, this->the_TAO_Administration_Proxy_Broker_ ); - + _tao_call.invoke ( _tao_ImplementationRepository_Administration_server_is_running_exceptiondata, 1 @@ -1294,7 +1542,7 @@ void ImplementationRepository::Administration::server_is_running ( } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::server_is_shutting_down ( const char * server @@ -1309,23 +1557,23 @@ void ImplementationRepository::Administration::server_is_shutting_down ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_server }; - + static TAO::Exception_Data - _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata [] = + _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata [] = { { "IDL:ImplementationRepository/NotFound:1.0", @@ -1333,7 +1581,7 @@ void ImplementationRepository::Administration::server_is_shutting_down ( ImplementationRepository::_tc_NotFound } }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -1342,7 +1590,7 @@ void ImplementationRepository::Administration::server_is_shutting_down ( 23, this->the_TAO_Administration_Proxy_Broker_ ); - + _tao_call.invoke ( _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata, 1 @@ -1352,7 +1600,7 @@ void ImplementationRepository::Administration::server_is_shutting_down ( } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::find ( const char * server, @@ -1360,41 +1608,30 @@ void ImplementationRepository::Administration::find ( ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound + CORBA::SystemException )) { if (!this->is_evaluated ()) { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< CORBA::Char *>::in_arg_val _tao_server (server); TAO::Arg_Traits< ImplementationRepository::ServerInformation>::out_arg_val _tao_info (info); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, &_tao_server, &_tao_info }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_find_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -1403,17 +1640,13 @@ void ImplementationRepository::Administration::find ( 4, this->the_TAO_Administration_Proxy_Broker_ ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_find_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); + + _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); ACE_CHECK; } // TAO_IDL - Generated from -// be\be_visitor_operation/operation_cs.cpp:78 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 void ImplementationRepository::Administration::list ( ::CORBA::ULong how_many, @@ -1429,17 +1662,17 @@ void ImplementationRepository::Administration::list ( { ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); } - + if (this->the_TAO_Administration_Proxy_Broker_ == 0) { ImplementationRepository_Administration_setup_collocation (); } - + TAO::Arg_Traits< void>::ret_val _tao_retval; TAO::Arg_Traits< ::CORBA::ULong>::in_arg_val _tao_how_many (how_many); TAO::Arg_Traits< ImplementationRepository::ServerInformationList>::out_arg_val _tao_server_list (server_list); TAO::Arg_Traits< ImplementationRepository::ServerInformationIterator>::out_arg_val _tao_server_iterator (server_iterator); - + TAO::Argument *_the_tao_operation_signature [] = { &_tao_retval, @@ -1447,7 +1680,7 @@ void ImplementationRepository::Administration::list ( &_tao_server_list, &_tao_server_iterator }; - + TAO::Invocation_Adapter _tao_call ( this, _the_tao_operation_signature, @@ -1456,7 +1689,54 @@ void ImplementationRepository::Administration::list ( 4, this->the_TAO_Administration_Proxy_Broker_ ); - + + _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_cs.cpp:78 + +void ImplementationRepository::Administration::shutdown ( + ::CORBA::Boolean activators, + ::CORBA::Boolean servers + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) +{ + if (!this->is_evaluated ()) + { + ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); + } + + if (this->the_TAO_Administration_Proxy_Broker_ == 0) + { + ImplementationRepository_Administration_setup_collocation (); + } + + TAO::Arg_Traits< void>::ret_val _tao_retval; + TAO::Arg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_val _tao_activators (activators); + TAO::Arg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_val _tao_servers (servers); + + TAO::Argument *_the_tao_operation_signature [] = + { + &_tao_retval, + &_tao_activators, + &_tao_servers + }; + + TAO::Invocation_Adapter _tao_call ( + this, + _the_tao_operation_signature, + 3, + "shutdown", + 8, + this->the_TAO_Administration_Proxy_Broker_, + TAO::TAO_ONEWAY_INVOCATION + ); + _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); ACE_CHECK; } @@ -1480,7 +1760,7 @@ ImplementationRepository::Administration::ImplementationRepository_Administratio ImplementationRepository::Administration::~Administration (void) {} -void +void ImplementationRepository::Administration::_tao_any_destructor (void *_tao_void_pointer) { Administration *_tao_tmp_pointer = @@ -1525,7 +1805,7 @@ ImplementationRepository::Administration::_duplicate (Administration_ptr obj) { obj->_add_ref (); } - + return obj; } @@ -1575,7 +1855,725 @@ ImplementationRepository::Administration::marshal (TAO_OutputCDR &cdr) } // TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_cs.cpp:60 +// c:\cvsdoc\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_ImplementationRepository_Administration ( + CORBA::tk_objref, + "IDL:ImplementationRepository/Administration:1.0", + "Administration"); + +namespace ImplementationRepository +{ + ::CORBA::TypeCode_ptr const _tc_Administration = + &_tao_tc_ImplementationRepository_Administration; +} + + + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/any_op_cs.cpp:50 + +namespace TAO +{ + template<> + CORBA::Boolean + Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::demarshal_value ( + TAO_InputCDR & cdr + ) + { + CORBA::String_var id; + + if (!(cdr >> id.out ())) + { + return false; + } + + ACE_TRY_NEW_ENV + { + this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + return false; + } + ACE_ENDTRY; + + return true; + } +} + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::AlreadyRegistered &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::insert_copy ( + _tao_any, + ImplementationRepository::AlreadyRegistered::_tao_any_destructor, + ImplementationRepository::_tc_AlreadyRegistered, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::AlreadyRegistered *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::insert ( + _tao_any, + ImplementationRepository::AlreadyRegistered::_tao_any_destructor, + ImplementationRepository::_tc_AlreadyRegistered, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::AlreadyRegistered *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::AlreadyRegistered *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::AlreadyRegistered *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::extract ( + _tao_any, + ImplementationRepository::AlreadyRegistered::_tao_any_destructor, + ImplementationRepository::_tc_AlreadyRegistered, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/any_op_cs.cpp:50 + +namespace TAO +{ + template<> + CORBA::Boolean + Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::demarshal_value ( + TAO_InputCDR & cdr + ) + { + CORBA::String_var id; + + if (!(cdr >> id.out ())) + { + return false; + } + + ACE_TRY_NEW_ENV + { + this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + return false; + } + ACE_ENDTRY; + + return true; + } +} + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::CannotActivate &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::insert_copy ( + _tao_any, + ImplementationRepository::CannotActivate::_tao_any_destructor, + ImplementationRepository::_tc_CannotActivate, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::CannotActivate *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::insert ( + _tao_any, + ImplementationRepository::CannotActivate::_tao_any_destructor, + ImplementationRepository::_tc_CannotActivate, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::CannotActivate *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::CannotActivate *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::CannotActivate *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::extract ( + _tao_any, + ImplementationRepository::CannotActivate::_tao_any_destructor, + ImplementationRepository::_tc_CannotActivate, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/any_op_cs.cpp:50 + +namespace TAO +{ + template<> + CORBA::Boolean + Any_Dual_Impl_T<ImplementationRepository::NotFound>::demarshal_value ( + TAO_InputCDR & cdr + ) + { + CORBA::String_var id; + + if (!(cdr >> id.out ())) + { + return false; + } + + ACE_TRY_NEW_ENV + { + this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + return false; + } + ACE_ENDTRY; + + return true; + } +} + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::NotFound &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::insert_copy ( + _tao_any, + ImplementationRepository::NotFound::_tao_any_destructor, + ImplementationRepository::_tc_NotFound, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::NotFound *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::insert ( + _tao_any, + ImplementationRepository::NotFound::_tao_any_destructor, + ImplementationRepository::_tc_NotFound, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::NotFound *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::NotFound *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::NotFound *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::extract ( + _tao_any, + ImplementationRepository::NotFound::_tao_any_destructor, + ImplementationRepository::_tc_NotFound, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/any_op_cs.cpp:54 + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::EnvironmentVariable &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentVariable>::insert_copy ( + _tao_any, + ImplementationRepository::EnvironmentVariable::_tao_any_destructor, + ImplementationRepository::_tc_EnvironmentVariable, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::EnvironmentVariable *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentVariable>::insert ( + _tao_any, + ImplementationRepository::EnvironmentVariable::_tao_any_destructor, + ImplementationRepository::_tc_EnvironmentVariable, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::EnvironmentVariable *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::EnvironmentVariable *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::EnvironmentVariable *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentVariable>::extract ( + _tao_any, + ImplementationRepository::EnvironmentVariable::_tao_any_destructor, + ImplementationRepository::_tc_EnvironmentVariable, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/any_op_cs.cpp:54 + + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::EnvironmentList &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentList>::insert_copy ( + _tao_any, + ImplementationRepository::EnvironmentList::_tao_any_destructor, + TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::EnvironmentList *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentList>::insert ( + _tao_any, + ImplementationRepository::EnvironmentList::_tao_any_destructor, + TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::EnvironmentList *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::EnvironmentList *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::EnvironmentList *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::EnvironmentList>::extract ( + _tao_any, + ImplementationRepository::EnvironmentList::_tao_any_destructor, + TAO::TypeCode::tc_ImplementationRepository_EnvironmentList_0, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_enum/any_op_cs.cpp:52 + +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::ActivationMode _tao_elem + ) +{ + TAO::Any_Basic_Impl_T<ImplementationRepository::ActivationMode>::insert ( + _tao_any, + ImplementationRepository::_tc_ActivationMode, + _tao_elem + ); +} + +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::ActivationMode &_tao_elem + ) +{ + return + TAO::Any_Basic_Impl_T<ImplementationRepository::ActivationMode>::extract ( + _tao_any, + ImplementationRepository::_tc_ActivationMode, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/any_op_cs.cpp:54 + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::StartupOptions &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::StartupOptions>::insert_copy ( + _tao_any, + ImplementationRepository::StartupOptions::_tao_any_destructor, + ImplementationRepository::_tc_StartupOptions, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::StartupOptions *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::StartupOptions>::insert ( + _tao_any, + ImplementationRepository::StartupOptions::_tao_any_destructor, + ImplementationRepository::_tc_StartupOptions, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::StartupOptions *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::StartupOptions *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::StartupOptions *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::StartupOptions>::extract ( + _tao_any, + ImplementationRepository::StartupOptions::_tao_any_destructor, + ImplementationRepository::_tc_StartupOptions, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/any_op_cs.cpp:54 + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::ServerInformation &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformation>::insert_copy ( + _tao_any, + ImplementationRepository::ServerInformation::_tao_any_destructor, + ImplementationRepository::_tc_ServerInformation, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::ServerInformation *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformation>::insert ( + _tao_any, + ImplementationRepository::ServerInformation::_tao_any_destructor, + ImplementationRepository::_tc_ServerInformation, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::ServerInformation *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::ServerInformation *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::ServerInformation *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformation>::extract ( + _tao_any, + ImplementationRepository::ServerInformation::_tao_any_destructor, + ImplementationRepository::_tc_ServerInformation, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/any_op_cs.cpp:54 + + +// Copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + const ImplementationRepository::ServerInformationList &_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformationList>::insert_copy ( + _tao_any, + ImplementationRepository::ServerInformationList::_tao_any_destructor, + TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0, + _tao_elem + ); +} + +// Non-copying insertion. +void operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::ServerInformationList *_tao_elem + ) +{ + TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformationList>::insert ( + _tao_any, + ImplementationRepository::ServerInformationList::_tao_any_destructor, + TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0, + _tao_elem + ); +} + +// Extraction to non-const pointer (deprecated). +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::ServerInformationList *&_tao_elem + ) +{ + return _tao_any >>= const_cast< + const ImplementationRepository::ServerInformationList *&> ( + _tao_elem + ); +} + +// Extraction to const pointer. +CORBA::Boolean operator>>= ( + const CORBA::Any &_tao_any, + const ImplementationRepository::ServerInformationList *&_tao_elem + ) +{ + return + TAO::Any_Dual_Impl_T<ImplementationRepository::ServerInformationList>::extract ( + _tao_any, + ImplementationRepository::ServerInformationList::_tao_any_destructor, + TAO::TypeCode::tc_ImplementationRepository_ServerInformationList_0, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/any_op_cs.cpp:50 + +namespace TAO +{ + template<> + CORBA::Boolean + Any_Impl_T<ImplementationRepository::ServerInformationIterator>::to_object ( + CORBA::Object_ptr &_tao_elem + ) const + { + _tao_elem = CORBA::Object::_duplicate (this->value_); + return true; + } +} + +// Copying insertion. +void +operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::ServerInformationIterator_ptr _tao_elem + ) +{ + ImplementationRepository::ServerInformationIterator_ptr _tao_objptr = + ImplementationRepository::ServerInformationIterator::_duplicate (_tao_elem); + _tao_any <<= &_tao_objptr; +} + +// Non-copying insertion. +void +operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::ServerInformationIterator_ptr *_tao_elem + ) +{ + TAO::Any_Impl_T<ImplementationRepository::ServerInformationIterator>::insert ( + _tao_any, + ImplementationRepository::ServerInformationIterator::_tao_any_destructor, + ImplementationRepository::_tc_ServerInformationIterator, + *_tao_elem + ); +} + +CORBA::Boolean +operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::ServerInformationIterator_ptr &_tao_elem + ) +{ + return + TAO::Any_Impl_T<ImplementationRepository::ServerInformationIterator>::extract ( + _tao_any, + ImplementationRepository::ServerInformationIterator::_tao_any_destructor, + ImplementationRepository::_tc_ServerInformationIterator, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/any_op_cs.cpp:50 + +namespace TAO +{ + template<> + CORBA::Boolean + Any_Impl_T<ImplementationRepository::Administration>::to_object ( + CORBA::Object_ptr &_tao_elem + ) const + { + _tao_elem = CORBA::Object::_duplicate (this->value_); + return true; + } +} + +// Copying insertion. +void +operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::Administration_ptr _tao_elem + ) +{ + ImplementationRepository::Administration_ptr _tao_objptr = + ImplementationRepository::Administration::_duplicate (_tao_elem); + _tao_any <<= &_tao_objptr; +} + +// Non-copying insertion. +void +operator<<= ( + CORBA::Any &_tao_any, + ImplementationRepository::Administration_ptr *_tao_elem + ) +{ + TAO::Any_Impl_T<ImplementationRepository::Administration>::insert ( + _tao_any, + ImplementationRepository::Administration::_tao_any_destructor, + ImplementationRepository::_tc_Administration, + *_tao_elem + ); +} + +CORBA::Boolean +operator>>= ( + const CORBA::Any &_tao_any, + ImplementationRepository::Administration_ptr &_tao_elem + ) +{ + return + TAO::Any_Impl_T<ImplementationRepository::Administration>::extract ( + _tao_any, + ImplementationRepository::Administration::_tao_any_destructor, + ImplementationRepository::_tc_Administration, + _tao_elem + ); +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1595,7 +2593,7 @@ CORBA::Boolean operator>> ( } // TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_cs.cpp:60 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1628,7 +2626,7 @@ CORBA::Boolean operator>> ( } // TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_cs.cpp:60 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/cdr_op_cs.cpp:60 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1648,7 +2646,7 @@ CORBA::Boolean operator>> ( } // TAO_IDL - Generated from -// be\be_visitor_structure/cdr_op_cs.cpp:61 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1671,7 +2669,7 @@ CORBA::Boolean operator>> ( } // TAO_IDL - Generated from -// be\be_visitor_sequence/cdr_op_cs.cpp:96 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96 #if !defined _TAO_CDR_OP_ImplementationRepository_EnvironmentList_CPP_ #define _TAO_CDR_OP_ImplementationRepository_EnvironmentList_CPP_ @@ -1682,20 +2680,20 @@ CORBA::Boolean operator<< ( ) { const CORBA::ULong _tao_seq_len = _tao_sequence.length (); - + if (strm << _tao_seq_len) { // Encode all elements. CORBA::Boolean _tao_marshal_flag = true; - + for (CORBA::ULong i = 0; i < _tao_seq_len && _tao_marshal_flag; ++i) { _tao_marshal_flag = (strm << _tao_sequence[i]); } - + return _tao_marshal_flag; } - + return false; } @@ -1705,7 +2703,7 @@ CORBA::Boolean operator>> ( ) { CORBA::ULong _tao_seq_len; - + if (strm >> _tao_seq_len) { // Add a check to the length of the sequence @@ -1715,35 +2713,35 @@ CORBA::Boolean operator>> ( { return false; } - + // Set the length of the sequence. _tao_sequence.length (_tao_seq_len); - + // If length is 0 we return true. - if (0 >= _tao_seq_len) + if (0 >= _tao_seq_len) { return true; } - + // Retrieve all the elements. CORBA::Boolean _tao_marshal_flag = true; - + for (CORBA::ULong i = 0; i < _tao_seq_len && _tao_marshal_flag; ++i) { _tao_marshal_flag = (strm >> _tao_sequence[i]); } - + return _tao_marshal_flag; - + } - + return false; } #endif /* _TAO_CDR_OP_ImplementationRepository_EnvironmentList_CPP_ */ // TAO_IDL - Generated from -// be\be_visitor_enum/cdr_op_cs.cpp:51 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_enum/cdr_op_cs.cpp:51 CORBA::Boolean operator<< (TAO_OutputCDR & strm, ImplementationRepository::ActivationMode _tao_enumerator) { @@ -1754,17 +2752,17 @@ CORBA::Boolean operator>> (TAO_InputCDR & strm, ImplementationRepository::Activa { CORBA::ULong _tao_temp = 0; CORBA::Boolean const _tao_success = strm >> _tao_temp; - + if (_tao_success) { _tao_enumerator = static_cast<ImplementationRepository::ActivationMode> (_tao_temp); } - + return _tao_success; } // TAO_IDL - Generated from -// be\be_visitor_structure/cdr_op_cs.cpp:61 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1795,7 +2793,7 @@ CORBA::Boolean operator>> ( } // TAO_IDL - Generated from -// be\be_visitor_structure/cdr_op_cs.cpp:61 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/cdr_op_cs.cpp:61 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1820,7 +2818,7 @@ CORBA::Boolean operator>> ( } // TAO_IDL - Generated from -// be\be_visitor_sequence/cdr_op_cs.cpp:96 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/cdr_op_cs.cpp:96 #if !defined _TAO_CDR_OP_ImplementationRepository_ServerInformationList_CPP_ #define _TAO_CDR_OP_ImplementationRepository_ServerInformationList_CPP_ @@ -1831,20 +2829,20 @@ CORBA::Boolean operator<< ( ) { const CORBA::ULong _tao_seq_len = _tao_sequence.length (); - + if (strm << _tao_seq_len) { // Encode all elements. CORBA::Boolean _tao_marshal_flag = true; - + for (CORBA::ULong i = 0; i < _tao_seq_len && _tao_marshal_flag; ++i) { _tao_marshal_flag = (strm << _tao_sequence[i]); } - + return _tao_marshal_flag; } - + return false; } @@ -1854,7 +2852,7 @@ CORBA::Boolean operator>> ( ) { CORBA::ULong _tao_seq_len; - + if (strm >> _tao_seq_len) { // Add a check to the length of the sequence @@ -1864,35 +2862,35 @@ CORBA::Boolean operator>> ( { return false; } - + // Set the length of the sequence. _tao_sequence.length (_tao_seq_len); - + // If length is 0 we return true. - if (0 >= _tao_seq_len) + if (0 >= _tao_seq_len) { return true; } - + // Retrieve all the elements. CORBA::Boolean _tao_marshal_flag = true; - + for (CORBA::ULong i = 0; i < _tao_seq_len && _tao_marshal_flag; ++i) { _tao_marshal_flag = (strm >> _tao_sequence[i]); } - + return _tao_marshal_flag; - + } - + return false; } #endif /* _TAO_CDR_OP_ImplementationRepository_ServerInformationList_CPP_ */ // TAO_IDL - Generated from -// be\be_visitor_interface/cdr_op_cs.cpp:63 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/cdr_op_cs.cpp:63 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1909,26 +2907,26 @@ CORBA::Boolean operator>> ( ) { CORBA::Object_var obj; - + if (!(strm >> obj.inout ())) { return false; } - + typedef ::ImplementationRepository::ServerInformationIterator RHS_SCOPED_NAME; - + // Narrow to the right type. _tao_objref = TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow ( obj.in (), ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer ); - + return 1; } // TAO_IDL - Generated from -// be\be_visitor_interface/cdr_op_cs.cpp:63 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/cdr_op_cs.cpp:63 CORBA::Boolean operator<< ( TAO_OutputCDR &strm, @@ -1945,20 +2943,20 @@ CORBA::Boolean operator>> ( ) { CORBA::Object_var obj; - + if (!(strm >> obj.inout ())) { return false; } - + typedef ::ImplementationRepository::Administration RHS_SCOPED_NAME; - + // Narrow to the right type. _tao_objref = TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow ( obj.in (), ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer ); - + return 1; } diff --git a/TAO/tao/ImR_Client/ImplRepoC.h b/TAO/tao/ImR_Client/ImplRepoC.h index be2978194b9..e1285836169 100644 --- a/TAO/tao/ImR_Client/ImplRepoC.h +++ b/TAO/tao/ImR_Client/ImplRepoC.h @@ -26,10 +26,10 @@ // http://www.cs.wustl.edu/~schmidt/TAO.html // TAO_IDL - Generated from -// be\be_codegen.cpp:153 +// .\be\be_codegen.cpp:153 -#ifndef _TAO_IDL_ORIG_IMPLREPOC_H_ -#define _TAO_IDL_ORIG_IMPLREPOC_H_ +#ifndef _TAO_IDL_IMPLREPOC_H_ +#define _TAO_IDL_IMPLREPOC_H_ #include /**/ "ace/pre.h" @@ -67,8 +67,8 @@ #pragma option push -w-rvl -w-rch -w-ccc -w-inl #endif /* __BORLANDC__ */ -// TAO_IDL - Generated from -// be\be_visitor_root/root_ch.cpp:62 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_root/root_ch.cpp:62 namespace TAO { @@ -77,34 +77,34 @@ namespace TAO } // TAO_IDL - Generated from -// be\be_visitor_module/module_ch.cpp:48 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:48 namespace ImplementationRepository { - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:51 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ch.cpp:51 #if !defined (_IMPLEMENTATIONREPOSITORY_ALREADYREGISTERED_CH_) #define _IMPLEMENTATIONREPOSITORY_ALREADYREGISTERED_CH_ - + class TAO_IMR_Client_Export AlreadyRegistered : public CORBA::UserException { public: - + AlreadyRegistered (void); AlreadyRegistered (const AlreadyRegistered &); ~AlreadyRegistered (void); AlreadyRegistered &operator= (const AlreadyRegistered &); - + static void _tao_any_destructor (void *); - + static AlreadyRegistered *_downcast (CORBA::Exception *); static const AlreadyRegistered *_downcast (CORBA::Exception const *); - + static CORBA::Exception *_alloc (void); - + virtual CORBA::Exception *_tao_duplicate (void) const; virtual void _raise (void) const; @@ -113,49 +113,49 @@ namespace ImplementationRepository TAO_OutputCDR & ACE_ENV_ARG_DECL ) const; - + virtual void _tao_decode ( TAO_InputCDR & ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ch.cpp:127 + virtual CORBA::TypeCode_ptr _tao_type (void) const; }; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_AlreadyRegistered; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:51 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ch.cpp:51 #if !defined (_IMPLEMENTATIONREPOSITORY_CANNOTACTIVATE_CH_) #define _IMPLEMENTATIONREPOSITORY_CANNOTACTIVATE_CH_ - + class TAO_IMR_Client_Export CannotActivate : public CORBA::UserException { public: - + TAO_String_Manager reason; CannotActivate (void); CannotActivate (const CannotActivate &); ~CannotActivate (void); CannotActivate &operator= (const CannotActivate &); - + static void _tao_any_destructor (void *); - + static CannotActivate *_downcast (CORBA::Exception *); static const CannotActivate *_downcast (CORBA::Exception const *); - + static CORBA::Exception *_alloc (void); - + virtual CORBA::Exception *_tao_duplicate (void) const; virtual void _raise (void) const; @@ -164,55 +164,55 @@ namespace ImplementationRepository TAO_OutputCDR & ACE_ENV_ARG_DECL ) const; - + virtual void _tao_decode ( TAO_InputCDR & ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ctor.cpp:66 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ctor.cpp:66 + CannotActivate ( const char * _tao_reason ); - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ch.cpp:127 + virtual CORBA::TypeCode_ptr _tao_type (void) const; }; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_CannotActivate; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:51 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ch.cpp:51 #if !defined (_IMPLEMENTATIONREPOSITORY_NOTFOUND_CH_) #define _IMPLEMENTATIONREPOSITORY_NOTFOUND_CH_ - + class TAO_IMR_Client_Export NotFound : public CORBA::UserException { public: - + NotFound (void); NotFound (const NotFound &); ~NotFound (void); NotFound &operator= (const NotFound &); - + static void _tao_any_destructor (void *); - + static NotFound *_downcast (CORBA::Exception *); static const NotFound *_downcast (CORBA::Exception const *); - + static CORBA::Exception *_alloc (void); - + virtual CORBA::Exception *_tao_duplicate (void) const; virtual void _raise (void) const; @@ -221,75 +221,75 @@ namespace ImplementationRepository TAO_OutputCDR & ACE_ENV_ARG_DECL ) const; - + virtual void _tao_decode ( TAO_InputCDR & ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_exception/exception_ch.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/exception_ch.cpp:127 + virtual CORBA::TypeCode_ptr _tao_type (void) const; }; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_NotFound; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_type.cpp:258 - + // .\be\be_type.cpp:258 + struct EnvironmentVariable; - + typedef TAO_Var_Var_T< EnvironmentVariable > EnvironmentVariable_var; - + typedef TAO_Out_T< EnvironmentVariable, EnvironmentVariable_var > EnvironmentVariable_out; - + // TAO_IDL - Generated from - // be\be_visitor_structure/structure_ch.cpp:52 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/structure_ch.cpp:52 + struct TAO_IMR_Client_Export EnvironmentVariable { typedef EnvironmentVariable_var _var_type; - + static void _tao_any_destructor (void *); TAO_String_Manager name; TAO_String_Manager value; }; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_EnvironmentVariable; - + // TAO_IDL - Generated from - // be\be_visitor_sequence/sequence_ch.cpp:101 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/sequence_ch.cpp:101 #if !defined (_IMPLEMENTATIONREPOSITORY_ENVIRONMENTLIST_CH_) #define _IMPLEMENTATIONREPOSITORY_ENVIRONMENTLIST_CH_ - + class EnvironmentList; - + typedef TAO_VarSeq_Var_T< EnvironmentList, EnvironmentVariable > EnvironmentList_var; - + typedef TAO_Seq_Out_T< EnvironmentList, @@ -297,7 +297,7 @@ namespace ImplementationRepository EnvironmentVariable > EnvironmentList_out; - + class TAO_IMR_Client_Export EnvironmentList : public TAO_Unbounded_Sequence< @@ -310,27 +310,27 @@ namespace ImplementationRepository EnvironmentList ( CORBA::ULong max, CORBA::ULong length, - EnvironmentVariable* buffer, + EnvironmentVariable* buffer, CORBA::Boolean release = 0 ); EnvironmentList (const EnvironmentList &); ~EnvironmentList (void); - + static void _tao_any_destructor (void *); - + typedef EnvironmentList_var _var_type; }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_EnvironmentList; - + // TAO_IDL - Generated from - // be\be_visitor_enum/enum_ch.cpp:57 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_enum/enum_ch.cpp:57 + enum ActivationMode { NORMAL, @@ -338,39 +338,39 @@ namespace ImplementationRepository PER_CLIENT, AUTO_START }; - + typedef ActivationMode &ActivationMode_out; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_ActivationMode; - + // TAO_IDL - Generated from - // be\be_type.cpp:258 - + // .\be\be_type.cpp:258 + struct StartupOptions; - + typedef TAO_Var_Var_T< StartupOptions > StartupOptions_var; - + typedef TAO_Out_T< StartupOptions, StartupOptions_var > StartupOptions_out; - + // TAO_IDL - Generated from - // be\be_visitor_structure/structure_ch.cpp:52 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/structure_ch.cpp:52 + struct TAO_IMR_Client_Export StartupOptions { typedef StartupOptions_var _var_type; - + static void _tao_any_destructor (void *); TAO_String_Manager command_line; ImplementationRepository::EnvironmentList environment; @@ -379,63 +379,63 @@ namespace ImplementationRepository TAO_String_Manager activator; CORBA::Long start_limit; }; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_StartupOptions; - + // TAO_IDL - Generated from - // be\be_type.cpp:258 - + // .\be\be_type.cpp:258 + struct ServerInformation; - + typedef TAO_Var_Var_T< ServerInformation > ServerInformation_var; - + typedef TAO_Out_T< ServerInformation, ServerInformation_var > ServerInformation_out; - + // TAO_IDL - Generated from - // be\be_visitor_structure/structure_ch.cpp:52 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/structure_ch.cpp:52 + struct TAO_IMR_Client_Export ServerInformation { typedef ServerInformation_var _var_type; - + static void _tao_any_destructor (void *); TAO_String_Manager server; ImplementationRepository::StartupOptions startup; TAO_String_Manager partial_ior; }; - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_ServerInformation; - + // TAO_IDL - Generated from - // be\be_visitor_sequence/sequence_ch.cpp:101 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/sequence_ch.cpp:101 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST_CH_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST_CH_ - + class ServerInformationList; - + typedef TAO_VarSeq_Var_T< ServerInformationList, ServerInformation > ServerInformationList_var; - + typedef TAO_Seq_Out_T< ServerInformationList, @@ -443,7 +443,7 @@ namespace ImplementationRepository ServerInformation > ServerInformationList_out; - + class TAO_IMR_Client_Export ServerInformationList : public TAO_Unbounded_Sequence< @@ -456,39 +456,39 @@ namespace ImplementationRepository ServerInformationList ( CORBA::ULong max, CORBA::ULong length, - ServerInformation* buffer, + ServerInformation* buffer, CORBA::Boolean release = 0 ); ServerInformationList (const ServerInformationList &); ~ServerInformationList (void); - + static void _tao_any_destructor (void *); - + typedef ServerInformationList_var _var_type; }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_ServerInformationList; - + // TAO_IDL - Generated from - // be\be_interface.cpp:598 + // .\be\be_interface.cpp:598 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__VAR_OUT_CH_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__VAR_OUT_CH_ - + class ServerInformationIterator; typedef ServerInformationIterator *ServerInformationIterator_ptr; - + typedef TAO_Objref_Var_T< ServerInformationIterator > ServerInformationIterator_var; - + typedef TAO_Objref_Out_T< ServerInformationIterator @@ -496,13 +496,13 @@ namespace ImplementationRepository ServerInformationIterator_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_interface/interface_ch.cpp:54 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ch.cpp:54 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR_CH_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR_CH_ - + class TAO_IMR_Client_Export ServerInformationIterator : public virtual CORBA::Object { @@ -510,32 +510,32 @@ namespace ImplementationRepository friend class TAO::Narrow_Utils<ServerInformationIterator>; typedef ServerInformationIterator_ptr _ptr_type; typedef ServerInformationIterator_var _var_type; - + // The static operations. static ServerInformationIterator_ptr _duplicate (ServerInformationIterator_ptr obj); - + static void _tao_release (ServerInformationIterator_ptr obj); - + static ServerInformationIterator_ptr _narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ServerInformationIterator_ptr _unchecked_narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ServerInformationIterator_ptr _nil (void) { return static_cast<ServerInformationIterator_ptr> (0); } - + static void _tao_any_destructor (void *); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual CORBA::Boolean next_n ( ::CORBA::ULong how_many, ::ImplementationRepository::ServerInformationList_out servers @@ -544,44 +544,44 @@ namespace ImplementationRepository ACE_THROW_SPEC (( CORBA::SystemException )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void destroy ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )); - + // TAO_IDL - Generated from - // be\be_visitor_interface/interface_ch.cpp:210 - + // c:\cvsdoc\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); private: TAO::Collocation_Proxy_Broker *the_TAO_ServerInformationIterator_Proxy_Broker_; - + protected: // Concrete interface only. ServerInformationIterator (void); - + // These methods travese the inheritance tree and set the // parents piece of the given class in the right mode. virtual void ImplementationRepository_ServerInformationIterator_setup_collocation (void); - + // Concrete non-local interface only. ServerInformationIterator ( IOP::IOR *ior, TAO_ORB_Core *orb_core = 0 ); - + // Non-local interface only. ServerInformationIterator ( TAO_Stub *objref, @@ -589,38 +589,38 @@ namespace ImplementationRepository TAO_Abstract_ServantBase *servant = 0, TAO_ORB_Core *orb_core = 0 ); - + virtual ~ServerInformationIterator (void); - + private: // Private and unimplemented for concrete interfaces. ServerInformationIterator (const ServerInformationIterator &); - + void operator= (const ServerInformationIterator &); }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_ServerInformationIterator; - + // TAO_IDL - Generated from - // be\be_interface.cpp:598 + // .\be\be_interface.cpp:598 #if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__VAR_OUT_CH_) #define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__VAR_OUT_CH_ - + class Administration; typedef Administration *Administration_ptr; - + typedef TAO_Objref_Var_T< Administration > Administration_var; - + typedef TAO_Objref_Out_T< Administration @@ -628,13 +628,13 @@ namespace ImplementationRepository Administration_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_interface/interface_ch.cpp:54 + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ch.cpp:54 #if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION_CH_) #define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION_CH_ - + class TAO_IMR_Client_Export Administration : public virtual CORBA::Object { @@ -642,32 +642,32 @@ namespace ImplementationRepository friend class TAO::Narrow_Utils<Administration>; typedef Administration_ptr _ptr_type; typedef Administration_var _var_type; - + // The static operations. static Administration_ptr _duplicate (Administration_ptr obj); - + static void _tao_release (Administration_ptr obj); - + static Administration_ptr _narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static Administration_ptr _unchecked_narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static Administration_ptr _nil (void) { return static_cast<Administration_ptr> (0); } - + static void _tao_any_destructor (void *); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void activate_server ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -677,38 +677,23 @@ namespace ImplementationRepository ::ImplementationRepository::NotFound, ::ImplementationRepository::CannotActivate )); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - - virtual void register_server ( - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - - virtual void reregister_server ( + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + + virtual void add_or_update_server ( const char * server, const ::ImplementationRepository::StartupOptions & options ACE_ENV_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void remove_server ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -717,10 +702,10 @@ namespace ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void shutdown_server ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -729,10 +714,10 @@ namespace ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void server_is_running ( const char * server, const char * partial_ior, @@ -743,10 +728,10 @@ namespace ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void server_is_shutting_down ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -755,23 +740,22 @@ namespace ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void find ( const char * server, ::ImplementationRepository::ServerInformation_out info ACE_ENV_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound + CORBA::SystemException )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_ch.cpp:46 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + virtual void list ( ::CORBA::ULong how_many, ::ImplementationRepository::ServerInformationList_out server_list, @@ -781,34 +765,46 @@ namespace ImplementationRepository ACE_THROW_SPEC (( CORBA::SystemException )); - + + // TAO_IDL - Generated from + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ch.cpp:46 + + virtual void shutdown ( + ::CORBA::Boolean activators, + ::CORBA::Boolean servers + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + // TAO_IDL - Generated from - // be\be_visitor_interface/interface_ch.cpp:210 - + // c:\cvsdoc\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); private: TAO::Collocation_Proxy_Broker *the_TAO_Administration_Proxy_Broker_; - + protected: // Concrete interface only. Administration (void); - + // These methods travese the inheritance tree and set the // parents piece of the given class in the right mode. virtual void ImplementationRepository_Administration_setup_collocation (void); - + // Concrete non-local interface only. Administration ( IOP::IOR *ior, TAO_ORB_Core *orb_core = 0 ); - + // Non-local interface only. Administration ( TAO_Stub *objref, @@ -816,32 +812,32 @@ namespace ImplementationRepository TAO_Abstract_ServantBase *servant = 0, TAO_ORB_Core *orb_core = 0 ); - + virtual ~Administration (void); - + private: // Private and unimplemented for concrete interfaces. Administration (const Administration &); - + void operator= (const Administration &); }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_typecode/typecode_decl.cpp:44 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_typecode/typecode_decl.cpp:44 + extern TAO_IMR_Client_Export ::CORBA::TypeCode_ptr const _tc_Administration; // TAO_IDL - Generated from -// be\be_visitor_module/module_ch.cpp:66 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_ch.cpp:66 } // module ImplementationRepository // Proxy Broker Factory function pointer declarations. // TAO_IDL - Generated from -// be\be_visitor_root/root.cpp:139 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_root/root.cpp:139 extern TAO_IMR_Client_Export TAO::Collocation_Proxy_Broker * @@ -856,7 +852,7 @@ TAO::Collocation_Proxy_Broker * ); // TAO_IDL - Generated from -// be\be_visitor_traits.cpp:61 +// .\be\be_visitor_traits.cpp:61 // Traits specializations. namespace TAO @@ -864,7 +860,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__TRAITS_CH_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__TRAITS_CH_ - + template<> struct TAO_IMR_Client_Export Objref_Traits< ::ImplementationRepository::ServerInformationIterator> { @@ -885,7 +881,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__TRAITS_CH_) #define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__TRAITS_CH_ - + template<> struct TAO_IMR_Client_Export Objref_Traits< ::ImplementationRepository::Administration> { @@ -906,7 +902,7 @@ namespace TAO } // TAO_IDL - Generated from -// be\be_visitor_exception/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::AlreadyRegistered &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::AlreadyRegistered*); // noncopying version @@ -914,7 +910,7 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::AlreadyRegistered *&); // TAO_IDL - Generated from -// be\be_visitor_exception/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::CannotActivate &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::CannotActivate*); // noncopying version @@ -922,7 +918,7 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::CannotActivate *&); // TAO_IDL - Generated from -// be\be_visitor_exception/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::NotFound &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::NotFound*); // noncopying version @@ -930,7 +926,7 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::NotFound *&); // TAO_IDL - Generated from -// be\be_visitor_structure/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::EnvironmentVariable &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::EnvironmentVariable*); // noncopying version @@ -938,7 +934,7 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::EnvironmentVariable *&); // TAO_IDL - Generated from -// be\be_visitor_sequence/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::EnvironmentList &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::EnvironmentList*); // noncopying version @@ -946,13 +942,13 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::EnvironmentList *&); // TAO_IDL - Generated from -// be\be_visitor_enum/any_op_ch.cpp:51 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_enum/any_op_ch.cpp:51 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::ActivationMode); TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ActivationMode &); // TAO_IDL - Generated from -// be\be_visitor_structure/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::StartupOptions &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::StartupOptions*); // noncopying version @@ -960,7 +956,7 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::StartupOptions *&); // TAO_IDL - Generated from -// be\be_visitor_structure/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::ServerInformation &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformation*); // noncopying version @@ -968,7 +964,7 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::ServerInformation *&); // TAO_IDL - Generated from -// be\be_visitor_sequence/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, const ImplementationRepository::ServerInformationList &); // copying version TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformationList*); // noncopying version @@ -976,45 +972,45 @@ TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, Implementa TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::ServerInformationList *&); // TAO_IDL - Generated from -// be\be_visitor_interface/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformationIterator_ptr); // copying TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformationIterator_ptr *); // non-copying TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ServerInformationIterator_ptr &); // TAO_IDL - Generated from -// be\be_visitor_interface/any_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/any_op_ch.cpp:52 TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::Administration_ptr); // copying TAO_IMR_Client_Export void operator<<= (CORBA::Any &, ImplementationRepository::Administration_ptr *); // non-copying TAO_IMR_Client_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::Administration_ptr &); // TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/cdr_op_ch.cpp:52 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::AlreadyRegistered &); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::AlreadyRegistered &); // TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/cdr_op_ch.cpp:52 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::CannotActivate &); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::CannotActivate &); // TAO_IDL - Generated from -// be\be_visitor_exception/cdr_op_ch.cpp:52 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_exception/cdr_op_ch.cpp:52 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::NotFound &); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::NotFound &); // TAO_IDL - Generated from -// be\be_visitor_structure/cdr_op_ch.cpp:54 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/cdr_op_ch.cpp:54 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::EnvironmentVariable &); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::EnvironmentVariable &); // TAO_IDL - Generated from -// be\be_visitor_sequence/cdr_op_ch.cpp:71 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/cdr_op_ch.cpp:71 #if !defined _TAO_CDR_OP_ImplementationRepository_EnvironmentList_H_ #define _TAO_CDR_OP_ImplementationRepository_EnvironmentList_H_ @@ -1031,25 +1027,25 @@ TAO_IMR_Client_Export CORBA::Boolean operator>> ( #endif /* _TAO_CDR_OP_ImplementationRepository_EnvironmentList_H_ */ // TAO_IDL - Generated from -// be\be_visitor_enum/cdr_op_ch.cpp:50 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_enum/cdr_op_ch.cpp:50 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, ImplementationRepository::ActivationMode); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ActivationMode &); // TAO_IDL - Generated from -// be\be_visitor_structure/cdr_op_ch.cpp:54 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/cdr_op_ch.cpp:54 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::StartupOptions &); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::StartupOptions &); // TAO_IDL - Generated from -// be\be_visitor_structure/cdr_op_ch.cpp:54 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_structure/cdr_op_ch.cpp:54 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::ServerInformation &); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ServerInformation &); // TAO_IDL - Generated from -// be\be_visitor_sequence/cdr_op_ch.cpp:71 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_sequence/cdr_op_ch.cpp:71 #if !defined _TAO_CDR_OP_ImplementationRepository_ServerInformationList_H_ #define _TAO_CDR_OP_ImplementationRepository_ServerInformationList_H_ @@ -1066,19 +1062,19 @@ TAO_IMR_Client_Export CORBA::Boolean operator>> ( #endif /* _TAO_CDR_OP_ImplementationRepository_ServerInformationList_H_ */ // TAO_IDL - Generated from -// be\be_visitor_interface/cdr_op_ch.cpp:55 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/cdr_op_ch.cpp:55 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::ServerInformationIterator_ptr ); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ServerInformationIterator_ptr &); // TAO_IDL - Generated from -// be\be_visitor_interface/cdr_op_ch.cpp:55 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/cdr_op_ch.cpp:55 TAO_IMR_Client_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::Administration_ptr ); TAO_IMR_Client_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::Administration_ptr &); // TAO_IDL - Generated from -// be\be_codegen.cpp:955 +// .\be\be_codegen.cpp:955 #if defined (__ACE_INLINE__) #include "ImplRepoC.inl" diff --git a/TAO/tao/ImR_Client/ImplRepoC.inl b/TAO/tao/ImR_Client/ImplRepoC.inl index 7b37ccdeaac..6b7e1bc5fff 100644 --- a/TAO/tao/ImR_Client/ImplRepoC.inl +++ b/TAO/tao/ImR_Client/ImplRepoC.inl @@ -27,7 +27,7 @@ // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ci.cpp:70 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ci.cpp:70 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR___CI_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR___CI_ @@ -63,7 +63,7 @@ ImplementationRepository::ServerInformationIterator::ServerInformationIterator ( #endif /* end #if !defined */ // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ci.cpp:70 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ci.cpp:70 #if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION___CI_) #define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION___CI_ diff --git a/TAO/tao/ImR_Client/ImplRepoS.cpp b/TAO/tao/ImR_Client/ImplRepoS.cpp index 3621e4a9e49..2b4e3fb2d6e 100644 --- a/TAO/tao/ImR_Client/ImplRepoS.cpp +++ b/TAO/tao/ImR_Client/ImplRepoS.cpp @@ -26,11 +26,11 @@ // http://www.cs.wustl.edu/~schmidt/TAO.html -// TAO_IDL - Generated from -// be\be_codegen.cpp:599 +// TAO_IDL - Generated from +// .\be\be_codegen.cpp:599 -#ifndef _TAO_IDL_ORIG_IMPLREPOS_CPP_ -#define _TAO_IDL_ORIG_IMPLREPOS_CPP_ +#ifndef _TAO_IDL_IMPLREPOS_CPP_ +#define _TAO_IDL_IMPLREPOS_CPP_ #include "ImplRepoS.h" @@ -72,7 +72,7 @@ #endif /* __BORLANDC__ */ // TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:69 +// .\be\be_visitor_arg_traits.cpp:69 // Arg traits specializations. namespace TAO @@ -80,7 +80,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_SS_ - + template<> class SArg_Traits<ImplementationRepository::ServerObject> : public @@ -93,13 +93,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:751 + // .\be\be_visitor_arg_traits.cpp:772 #if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_SS_ - + template<> class SArg_Traits<ImplementationRepository::StartupOptions> : public @@ -112,13 +112,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:751 + // .\be\be_visitor_arg_traits.cpp:772 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_SS_ - + template<> class SArg_Traits<ImplementationRepository::ServerInformation> : public @@ -131,13 +131,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:496 + // .\be\be_visitor_arg_traits.cpp:489 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__SARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__SARG_TRAITS_SS_ - + template<> class SArg_Traits<ImplementationRepository::ServerInformationList> : public @@ -153,7 +153,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_SS_ - + template<> class SArg_Traits<ImplementationRepository::ServerInformationIterator> : public @@ -170,7 +170,7 @@ namespace TAO // TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:69 +// .\be\be_visitor_arg_traits.cpp:69 // Arg traits specializations. namespace TAO @@ -178,7 +178,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_SS_ - + template<> class Arg_Traits<ImplementationRepository::ServerObject> : public @@ -192,13 +192,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:751 + // .\be\be_visitor_arg_traits.cpp:772 #if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_SS_ - + template<> class Arg_Traits<ImplementationRepository::StartupOptions> : public @@ -211,13 +211,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:751 + // .\be\be_visitor_arg_traits.cpp:772 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_SS_ - + template<> class Arg_Traits<ImplementationRepository::ServerInformation> : public @@ -230,13 +230,13 @@ namespace TAO }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from - // be\be_visitor_arg_traits.cpp:496 + // .\be\be_visitor_arg_traits.cpp:489 #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_SS_ - + template<> class Arg_Traits<ImplementationRepository::ServerInformationList> : public @@ -252,7 +252,7 @@ namespace TAO #if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_SS_) #define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_SS_ - + template<> class Arg_Traits<ImplementationRepository::ServerInformationIterator> : public @@ -270,7 +270,7 @@ namespace TAO // TAO_IDL - Generated from -// be\be_interface.cpp:1455 +// .\be\be_interface.cpp:1455 class TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable : public TAO_Perfect_Hash_OpTable @@ -283,7 +283,7 @@ public: }; /* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: c:\ACE\latest\ACE_wrappers\bin\gperf.exe -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable -N lookup */ +/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable -N lookup */ unsigned int TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) { @@ -385,7 +385,7 @@ static TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTab // // TAO_IDL - Generated from -// be\be_visitor_interface/strategized_proxy_broker_ss.cpp:40 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/strategized_proxy_broker_ss.cpp:40 // Factory function Implementation. POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker * @@ -393,7 +393,7 @@ POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_B { static POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker strategized_proxy_broker; - + return &strategized_proxy_broker; } @@ -415,7 +415,7 @@ POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_B TAO::Collocation_Strategy strategy = TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); - + return strategy; } @@ -434,13 +434,13 @@ POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_B { TAO::Direct_Collocation_Upcall_Wrapper collocation_upcall_wrapper; collocation_upcall_wrapper.upcall ( - obj, - forward_obj, - args, - num_args, - op, - op_len, - strategy + obj, + forward_obj, + args, + num_args, + op, + op_len, + strategy ACE_ENV_ARG_PARAMETER); } @@ -449,7 +449,7 @@ POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_B /////////////////////////////////////////////////////////////////////// // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:999 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:813 TAO::Collocation_Proxy_Broker * ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function (CORBA::Object_ptr) @@ -461,9 +461,9 @@ ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_fun int ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_Initializer (size_t) { - ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer = + ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer = ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function; - + return 0; } @@ -482,14 +482,14 @@ ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Stub_Factor POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::_TAO_ServerInformationIterator_Direct_Proxy_Impl (void) {} -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::next_n ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -506,14 +506,14 @@ POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl:: ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::destroy ( TAO_Abstract_ServantBase *servant, TAO::Argument **, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -533,8 +533,8 @@ POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl:: // End Direct Proxy Implementation /////////////////////////////////////////////////////////////////////// -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:103 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:103 POA_ImplementationRepository::ServerInformationIterator::ServerInformationIterator (void) : TAO_ServantBase () @@ -553,11 +553,11 @@ POA_ImplementationRepository::ServerInformationIterator::~ServerInformationItera } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class next_n_ServerInformationIterator : public TAO::Upcall_Command { @@ -571,46 +571,46 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type> ( this->operation_details_, this->args_); - + TAO::SArg_Traits< ::CORBA::ULong>::in_arg_type arg_1 = TAO::Portable_Server::get_in_arg< ::CORBA::ULong, TAO::SArg_Traits< ::CORBA::ULong>::in_arg_type> ( this->operation_details_, this->args_, 1); - + TAO::SArg_Traits< ImplementationRepository::ServerInformationList>::out_arg_type arg_2 = TAO::Portable_Server::get_out_arg< ImplementationRepository::ServerInformationList, TAO::SArg_Traits< ImplementationRepository::ServerInformationList>::out_arg_type> ( this->operation_details_, this->args_, 2); - - + + retval = this->servant_->next_n ( arg_1 , arg_2 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::ServerInformationIterator * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::ServerInformationIterator::next_n_skel ( TAO_ServerRequest & server_request, @@ -619,26 +619,26 @@ void POA_ImplementationRepository::ServerInformationIterator::next_n_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; TAO::SArg_Traits< ::CORBA::ULong>::in_arg_val _tao_how_many; TAO::SArg_Traits< ImplementationRepository::ServerInformationList>::out_arg_val _tao_servers; - + TAO::Argument * const args[] = { &retval, &_tao_how_many, &_tao_servers }; - + static size_t const nargs = 3; - + POA_ImplementationRepository::ServerInformationIterator * const impl = static_cast<POA_ImplementationRepository::ServerInformationIterator *> (servant); @@ -646,7 +646,7 @@ void POA_ImplementationRepository::ServerInformationIterator::next_n_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -659,15 +659,15 @@ void POA_ImplementationRepository::ServerInformationIterator::next_n_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class destroy_ServerInformationIterator : public TAO::Upcall_Command { @@ -677,23 +677,23 @@ namespace POA_ImplementationRepository : servant_ (servant) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { this->servant_->destroy ( ACE_ENV_SINGLE_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::ServerInformationIterator * const servant_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::ServerInformationIterator::destroy_skel ( TAO_ServerRequest & server_request, @@ -702,28 +702,28 @@ void POA_ImplementationRepository::ServerInformationIterator::destroy_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; - + TAO::Argument * const args[] = { &retval }; - + static size_t const nargs = 1; - + POA_ImplementationRepository::ServerInformationIterator * const impl = static_cast<POA_ImplementationRepository::ServerInformationIterator *> (servant); destroy_ServerInformationIterator command ( impl); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -736,19 +736,19 @@ void POA_ImplementationRepository::ServerInformationIterator::destroy_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:169 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:169 namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class _is_a_ServerInformationIterator_Upcall_Command : public TAO::Upcall_Command { @@ -762,68 +762,68 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type> ( this->operation_details_, this->args_); - + TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = TAO::Portable_Server::get_in_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::in_arg_type> ( this->operation_details_, this->args_, 1); - - + + retval = this->servant_-> _is_a ( arg_1 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::ServerInformationIterator * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } void POA_ImplementationRepository::ServerInformationIterator::_is_a_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_repository_id; - + TAO::Argument * const args[] = { &retval, &_tao_repository_id }; - + static size_t const nargs = 2; - + POA_ImplementationRepository::ServerInformationIterator * const impl = static_cast<POA_ImplementationRepository::ServerInformationIterator *> (servant); - + _is_a_ServerInformationIterator_Upcall_Command command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -836,16 +836,16 @@ void POA_ImplementationRepository::ServerInformationIterator::_is_a_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class _non_existent_ServerInformationIterator_Upcall_Command : public TAO::Upcall_Command { @@ -859,59 +859,59 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type> ( this->operation_details_, this->args_); - - + + retval = this->servant_-> _non_existent ( ACE_ENV_SINGLE_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::ServerInformationIterator * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } void POA_ImplementationRepository::ServerInformationIterator::_non_existent_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; - + TAO::Argument * const args[] = { &retval }; - + static size_t const nargs = 1; - + POA_ImplementationRepository::ServerInformationIterator * const impl = static_cast<POA_ImplementationRepository::ServerInformationIterator *> (servant); - + _non_existent_ServerInformationIterator_Upcall_Command command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -924,18 +924,18 @@ void POA_ImplementationRepository::ServerInformationIterator::_non_existent_skel #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:393 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:393 void POA_ImplementationRepository::ServerInformationIterator::_interface_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * /* servant_upcall */, void * servant ACE_ENV_ARG_DECL @@ -945,30 +945,30 @@ void POA_ImplementationRepository::ServerInformationIterator::_interface_skel ( ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( TAO_ORB_Core::ifr_client_adapter_name () ); - + if (_tao_adapter == 0) { ACE_THROW (CORBA::INTF_REPOS (CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO)); } - + POA_ImplementationRepository::ServerInformationIterator * const impl = static_cast<POA_ImplementationRepository::ServerInformationIterator *> (servant); - CORBA::InterfaceDef_ptr _tao_retval = + CORBA::InterfaceDef_ptr _tao_retval = impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK; - + server_request.init_reply (); TAO_OutputCDR &_tao_out = *server_request.outgoing (); - + CORBA::Boolean const _tao_result = _tao_adapter->interfacedef_cdr_insert ( _tao_out, _tao_retval ); - + _tao_adapter->dispose (_tao_retval); - + if (_tao_result == 0) { ACE_THROW (CORBA::MARSHAL ()); @@ -977,11 +977,11 @@ void POA_ImplementationRepository::ServerInformationIterator::_interface_skel ( namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class _get_component_ServerInformationIterator_Upcall_Command : public TAO::Upcall_Command { @@ -995,59 +995,59 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::CORBA::Object, TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type> ( this->operation_details_, this->args_); - - + + retval = this->servant_-> _get_component ( ACE_ENV_SINGLE_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::ServerInformationIterator * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } void POA_ImplementationRepository::ServerInformationIterator::_component_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::CORBA::Object>::ret_val retval; - + TAO::Argument * const args[] = { &retval }; - + static size_t const nargs = 1; - + POA_ImplementationRepository::ServerInformationIterator * const impl = static_cast<POA_ImplementationRepository::ServerInformationIterator *> (servant); - + _get_component_ServerInformationIterator_Upcall_Command command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -1060,7 +1060,7 @@ void POA_ImplementationRepository::ServerInformationIterator::_component_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } CORBA::Boolean POA_ImplementationRepository::ServerInformationIterator::_is_a ( @@ -1087,7 +1087,7 @@ const char* POA_ImplementationRepository::ServerInformationIterator::_interface_ } // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:940 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:754 void POA_ImplementationRepository::ServerInformationIterator::_dispatch ( TAO_ServerRequest & req, @@ -1102,29 +1102,29 @@ void POA_ImplementationRepository::ServerInformationIterator::_dispatch ( } // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:891 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:705 ImplementationRepository::ServerInformationIterator * POA_ImplementationRepository::ServerInformationIterator::_this (ACE_ENV_SINGLE_ARG_DECL) { TAO_Stub *stub = this->_create_stub (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); - + TAO_Stub_Auto_Ptr safe_stub (stub); CORBA::Object_ptr tmp = CORBA::Object::_nil (); - + CORBA::Boolean _tao_opt_colloc = stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects (); - + ACE_NEW_RETURN ( tmp, CORBA::Object (stub, _tao_opt_colloc, this), 0 ); - + CORBA::Object_var obj = tmp; (void) safe_stub.release (); - + typedef ::ImplementationRepository::ServerInformationIterator STUB_SCOPED_NAME; return TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow ( @@ -1134,7 +1134,7 @@ POA_ImplementationRepository::ServerInformationIterator::_this (ACE_ENV_SINGLE_A } // TAO_IDL - Generated from -// be\be_interface.cpp:1455 +// .\be\be_interface.cpp:1455 class TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable : public TAO_Perfect_Hash_OpTable @@ -1147,53 +1147,53 @@ public: }; /* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: c:\ACE\latest\ACE_wrappers\bin\gperf.exe -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable -N lookup */ +/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable -N lookup */ unsigned int TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) { static const unsigned char asso_values[] = { #if defined (ACE_MVS) - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 0, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 9, - 29, 29, 0, 0, 0, 5, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 5, 29, 0, - 29, 29, 29, 0, 29, 29, 29, 29, 29, 29, - 29, 29, 5, 9, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 5, + 26, 26, 0, 9, 0, 5, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 10, 26, 0, + 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, + 26, 26, 0, 4, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, #else - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 0, 29, 9, 29, 29, - 0, 0, 0, 5, 29, 29, 29, 29, 5, 29, - 0, 29, 29, 29, 0, 5, 9, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 0, 26, 5, 26, 26, + 0, 9, 0, 5, 26, 26, 26, 26, 10, 26, + 0, 26, 26, 26, 0, 0, 4, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, #endif /* ACE_MVS */ }; return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; @@ -1208,8 +1208,8 @@ TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::lookup (const MIN_WORD_LENGTH = 4, MAX_WORD_LENGTH = 23, MIN_HASH_VALUE = 4, - MAX_HASH_VALUE = 28, - HASH_VALUE_RANGE = 25, + MAX_HASH_VALUE = 25, + HASH_VALUE_RANGE = 22, DUPLICATES = 0, WORDLIST_SIZE = 17 }; @@ -1218,24 +1218,24 @@ TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::lookup (const { {"",0,0},{"",0,0},{"",0,0},{"",0,0}, {"find", &POA_ImplementationRepository::Administration::find_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find}, - {"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0}, - {"_interface", &POA_ImplementationRepository::Administration::_interface_skel, 0}, + {"",0,0},{"",0,0},{"",0,0}, + {"shutdown", &POA_ImplementationRepository::Administration::shutdown_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown}, + {"",0,0}, + {"_is_a", &POA_ImplementationRepository::Administration::_is_a_skel, 0}, {"",0,0},{"",0,0}, {"remove_server", &POA_ImplementationRepository::Administration::remove_server_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::remove_server}, - {"_is_a", &POA_ImplementationRepository::Administration::_is_a_skel, 0}, - {"register_server", &POA_ImplementationRepository::Administration::register_server_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::register_server}, - {"",0,0}, - {"reregister_server", &POA_ImplementationRepository::Administration::reregister_server_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::reregister_server}, - {"list", &POA_ImplementationRepository::Administration::list_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list}, {"_component", &POA_ImplementationRepository::Administration::_component_skel, 0}, {"shutdown_server", &POA_ImplementationRepository::Administration::shutdown_server_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_server}, {"",0,0}, {"_non_existent", &POA_ImplementationRepository::Administration::_non_existent_skel, 0}, - {"",0,0}, + {"list", &POA_ImplementationRepository::Administration::list_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list}, + {"_interface", &POA_ImplementationRepository::Administration::_interface_skel, 0}, {"activate_server", &POA_ImplementationRepository::Administration::activate_server_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server}, - {"",0,0},{"",0,0}, + {"",0,0}, {"server_is_running", &POA_ImplementationRepository::Administration::server_is_running_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_running}, {"server_is_shutting_down", &POA_ImplementationRepository::Administration::server_is_shutting_down_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_shutting_down}, + {"",0,0}, + {"add_or_update_server", &POA_ImplementationRepository::Administration::add_or_update_server_skel, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::add_or_update_server}, }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) @@ -1259,7 +1259,7 @@ static TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable tao_Impl // // TAO_IDL - Generated from -// be\be_visitor_interface/strategized_proxy_broker_ss.cpp:40 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/strategized_proxy_broker_ss.cpp:40 // Factory function Implementation. POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker * @@ -1267,7 +1267,7 @@ POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::the_ { static POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker strategized_proxy_broker; - + return &strategized_proxy_broker; } @@ -1289,7 +1289,7 @@ POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::get_ TAO::Collocation_Strategy strategy = TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); - + return strategy; } @@ -1308,13 +1308,13 @@ POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::disp { TAO::Direct_Collocation_Upcall_Wrapper collocation_upcall_wrapper; collocation_upcall_wrapper.upcall ( - obj, - forward_obj, - args, - num_args, - op, - op_len, - strategy + obj, + forward_obj, + args, + num_args, + op, + op_len, + strategy ACE_ENV_ARG_PARAMETER); } @@ -1323,7 +1323,7 @@ POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::disp /////////////////////////////////////////////////////////////////////// // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:999 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:813 TAO::Collocation_Proxy_Broker * ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function (CORBA::Object_ptr) @@ -1335,9 +1335,9 @@ ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function (CORB int ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_Initializer (size_t) { - ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer = + ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer = ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function; - + return 0; } @@ -1356,14 +1356,14 @@ ImplementationRepository__TAO_Administration_Proxy_Broker_Stub_Factory_Initializ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::_TAO_Administration_Direct_Proxy_Impl (void) {} -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -1380,64 +1380,38 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_se ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - dynamic_cast<POA_ImplementationRepository::Administration_ptr> - (servant) - ->register_server ( - ((TAO::Arg_Traits< CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ImplementationRepository::StartupOptions>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void -POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::reregister_server ( +POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::add_or_update_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, ::ImplementationRepository::NotFound )) { dynamic_cast<POA_ImplementationRepository::Administration_ptr> (servant) - ->reregister_server ( + ->add_or_update_server ( ((TAO::Arg_Traits< CORBA::Char *>::in_arg_val *) args[1])->arg (), ((TAO::Arg_Traits< ImplementationRepository::StartupOptions>::in_arg_val *) args[2])->arg () ACE_ENV_ARG_PARAMETER ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::remove_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -1453,14 +1427,14 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::remove_serv ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -1476,14 +1450,14 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_se ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_running ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -1501,14 +1475,14 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_r ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_shutting_down ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -1524,19 +1498,18 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_s ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound + CORBA::SystemException )) { dynamic_cast<POA_ImplementationRepository::Administration_ptr> @@ -1548,14 +1521,14 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find ( ); ACE_CHECK; } -// TAO_IDL - Generated from -// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, - int + int ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( @@ -1572,14 +1545,37 @@ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list ( ); ACE_CHECK; } +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 + +void +POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown ( + TAO_Abstract_ServantBase *servant, + TAO::Argument ** args, + int + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) +{ + dynamic_cast<POA_ImplementationRepository::Administration_ptr> + (servant) + ->shutdown ( + ((TAO::Arg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_val *) args[1])->arg (), + ((TAO::Arg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_val *) args[2])->arg () + ACE_ENV_ARG_PARAMETER + ); + ACE_CHECK; +} // // End Direct Proxy Implementation /////////////////////////////////////////////////////////////////////// -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:103 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:103 POA_ImplementationRepository::Administration::Administration (void) : TAO_ServantBase () @@ -1598,11 +1594,11 @@ POA_ImplementationRepository::Administration::~Administration (void) } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class activate_server_Administration : public TAO::Upcall_Command { @@ -1616,7 +1612,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -1624,24 +1620,24 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + this->servant_->activate_server ( arg_1 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::activate_server_skel ( TAO_ServerRequest & server_request, @@ -1650,28 +1646,28 @@ void POA_ImplementationRepository::Administration::activate_server_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = + static CORBA::TypeCode_ptr const exceptions[] = { ImplementationRepository::_tc_NotFound, ImplementationRepository::_tc_CannotActivate }; static size_t const nexceptions = 2; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; - + TAO::Argument * const args[] = { &retval, &_tao_server }; - + static size_t const nargs = 2; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -1679,7 +1675,7 @@ void POA_ImplementationRepository::Administration::activate_server_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -1692,20 +1688,20 @@ void POA_ImplementationRepository::Administration::activate_server_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class register_server_Administration + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + + class add_or_update_server_Administration : public TAO::Upcall_Command { public: - inline register_server_Administration ( + inline add_or_update_server_Administration ( POA_ImplementationRepository::Administration * servant, TAO_Operation_Details const * operation_details, TAO::Argument * const args[]) @@ -1714,7 +1710,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -1722,178 +1718,70 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + TAO::SArg_Traits< ImplementationRepository::StartupOptions>::in_arg_type arg_2 = TAO::Portable_Server::get_in_arg< ImplementationRepository::StartupOptions, TAO::SArg_Traits< ImplementationRepository::StartupOptions>::in_arg_type> ( this->operation_details_, this->args_, 2); - - this->servant_->register_server ( + + this->servant_->add_or_update_server ( arg_1 , arg_2 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 - -void POA_ImplementationRepository::Administration::register_server_skel ( - TAO_ServerRequest & server_request, - void * TAO_INTERCEPTOR (servant_upcall), - void * servant - ACE_ENV_ARG_DECL - ) -{ - - -#if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = - { - ImplementationRepository::_tc_AlreadyRegistered, - ImplementationRepository::_tc_NotFound - }; - static size_t const nexceptions = 2; -#endif /* TAO_HAS_INTERCEPTORS */ - - TAO::SArg_Traits< void>::ret_val retval; - TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; - TAO::SArg_Traits< ImplementationRepository::StartupOptions>::in_arg_val _tao_options; - - TAO::Argument * const args[] = - { - &retval, - &_tao_server, - &_tao_options - }; - - static size_t const nargs = 3; - - POA_ImplementationRepository::Administration * const impl = - static_cast<POA_ImplementationRepository::Administration *> (servant); - - register_server_Administration command ( - impl, - server_request.operation_details (), - args); - - TAO::Upcall_Wrapper upcall_wrapper; - upcall_wrapper.upcall (server_request - , args - , nargs - , command -#if TAO_HAS_INTERCEPTORS == 1 - , servant_upcall - , exceptions - , nexceptions -#endif /* TAO_HAS_INTERCEPTORS == 1 */ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - -} -namespace POA_ImplementationRepository -{ - - - // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - - class reregister_server_Administration - : public TAO::Upcall_Command - { - public: - inline reregister_server_Administration ( - POA_ImplementationRepository::Administration * servant, - TAO_Operation_Details const * operation_details, - TAO::Argument * const args[]) - : servant_ (servant) - , operation_details_ (operation_details) - , args_ (args) - { - } - - virtual void execute (ACE_ENV_SINGLE_ARG_DECL) - { - TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = - TAO::Portable_Server::get_in_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::in_arg_type> ( - this->operation_details_, - this->args_, - 1); - - TAO::SArg_Traits< ImplementationRepository::StartupOptions>::in_arg_type arg_2 = - TAO::Portable_Server::get_in_arg< ImplementationRepository::StartupOptions, TAO::SArg_Traits< ImplementationRepository::StartupOptions>::in_arg_type> ( - this->operation_details_, - this->args_, - 2); - - this->servant_->reregister_server ( - arg_1 - , arg_2 - ACE_ENV_ARG_PARAMETER); - - } - - private: - POA_ImplementationRepository::Administration * const servant_; - TAO_Operation_Details const * const operation_details_; - TAO::Argument * const * const args_; - }; - -} - - -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 -void POA_ImplementationRepository::Administration::reregister_server_skel ( +void POA_ImplementationRepository::Administration::add_or_update_server_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = + static CORBA::TypeCode_ptr const exceptions[] = { - ImplementationRepository::_tc_AlreadyRegistered, ImplementationRepository::_tc_NotFound }; - static size_t const nexceptions = 2; + static size_t const nexceptions = 1; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; TAO::SArg_Traits< ImplementationRepository::StartupOptions>::in_arg_val _tao_options; - + TAO::Argument * const args[] = { &retval, &_tao_server, &_tao_options }; - + static size_t const nargs = 3; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); - reregister_server_Administration command ( + add_or_update_server_Administration command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -1906,15 +1794,15 @@ void POA_ImplementationRepository::Administration::reregister_server_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class remove_server_Administration : public TAO::Upcall_Command { @@ -1928,7 +1816,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -1936,24 +1824,24 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + this->servant_->remove_server ( arg_1 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::remove_server_skel ( TAO_ServerRequest & server_request, @@ -1962,27 +1850,27 @@ void POA_ImplementationRepository::Administration::remove_server_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = + static CORBA::TypeCode_ptr const exceptions[] = { ImplementationRepository::_tc_NotFound }; static size_t const nexceptions = 1; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; - + TAO::Argument * const args[] = { &retval, &_tao_server }; - + static size_t const nargs = 2; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -1990,7 +1878,7 @@ void POA_ImplementationRepository::Administration::remove_server_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2003,15 +1891,15 @@ void POA_ImplementationRepository::Administration::remove_server_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class shutdown_server_Administration : public TAO::Upcall_Command { @@ -2025,7 +1913,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -2033,24 +1921,24 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + this->servant_->shutdown_server ( arg_1 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::shutdown_server_skel ( TAO_ServerRequest & server_request, @@ -2059,27 +1947,27 @@ void POA_ImplementationRepository::Administration::shutdown_server_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = + static CORBA::TypeCode_ptr const exceptions[] = { ImplementationRepository::_tc_NotFound }; static size_t const nexceptions = 1; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; - + TAO::Argument * const args[] = { &retval, &_tao_server }; - + static size_t const nargs = 2; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -2087,7 +1975,7 @@ void POA_ImplementationRepository::Administration::shutdown_server_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2100,15 +1988,15 @@ void POA_ImplementationRepository::Administration::shutdown_server_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class server_is_running_Administration : public TAO::Upcall_Command { @@ -2122,7 +2010,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -2130,38 +2018,38 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_2 = TAO::Portable_Server::get_in_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::in_arg_type> ( this->operation_details_, this->args_, 2); - + TAO::SArg_Traits< ImplementationRepository::ServerObject>::in_arg_type arg_3 = TAO::Portable_Server::get_in_arg< ImplementationRepository::ServerObject, TAO::SArg_Traits< ImplementationRepository::ServerObject>::in_arg_type> ( this->operation_details_, this->args_, 3); - + this->servant_->server_is_running ( arg_1 , arg_2 , arg_3 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::server_is_running_skel ( TAO_ServerRequest & server_request, @@ -2170,21 +2058,21 @@ void POA_ImplementationRepository::Administration::server_is_running_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = + static CORBA::TypeCode_ptr const exceptions[] = { ImplementationRepository::_tc_NotFound }; static size_t const nexceptions = 1; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_partial_ior; TAO::SArg_Traits< ImplementationRepository::ServerObject>::in_arg_val _tao_server_object; - + TAO::Argument * const args[] = { &retval, @@ -2192,9 +2080,9 @@ void POA_ImplementationRepository::Administration::server_is_running_skel ( &_tao_partial_ior, &_tao_server_object }; - + static size_t const nargs = 4; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -2202,7 +2090,7 @@ void POA_ImplementationRepository::Administration::server_is_running_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2215,15 +2103,15 @@ void POA_ImplementationRepository::Administration::server_is_running_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class server_is_shutting_down_Administration : public TAO::Upcall_Command { @@ -2237,7 +2125,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -2245,24 +2133,24 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + this->servant_->server_is_shutting_down ( arg_1 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::server_is_shutting_down_skel ( TAO_ServerRequest & server_request, @@ -2271,27 +2159,27 @@ void POA_ImplementationRepository::Administration::server_is_shutting_down_skel ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = + static CORBA::TypeCode_ptr const exceptions[] = { ImplementationRepository::_tc_NotFound }; static size_t const nexceptions = 1; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; - + TAO::Argument * const args[] = { &retval, &_tao_server }; - + static size_t const nargs = 2; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -2299,7 +2187,7 @@ void POA_ImplementationRepository::Administration::server_is_shutting_down_skel impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2312,15 +2200,15 @@ void POA_ImplementationRepository::Administration::server_is_shutting_down_skel #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class find_Administration : public TAO::Upcall_Command { @@ -2334,7 +2222,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = @@ -2342,31 +2230,31 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + TAO::SArg_Traits< ImplementationRepository::ServerInformation>::out_arg_type arg_2 = TAO::Portable_Server::get_out_arg< ImplementationRepository::ServerInformation, TAO::SArg_Traits< ImplementationRepository::ServerInformation>::out_arg_type> ( this->operation_details_, this->args_, 2); - + this->servant_->find ( arg_1 , arg_2 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::find_skel ( TAO_ServerRequest & server_request, @@ -2375,29 +2263,26 @@ void POA_ImplementationRepository::Administration::find_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 - static CORBA::TypeCode_ptr const exceptions[] = - { - ImplementationRepository::_tc_NotFound - }; - static size_t const nexceptions = 1; + static CORBA::TypeCode_ptr const * const exceptions = 0; + static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_server; TAO::SArg_Traits< ImplementationRepository::ServerInformation>::out_arg_val _tao_info; - + TAO::Argument * const args[] = { &retval, &_tao_server, &_tao_info }; - + static size_t const nargs = 3; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -2405,7 +2290,7 @@ void POA_ImplementationRepository::Administration::find_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2418,15 +2303,15 @@ void POA_ImplementationRepository::Administration::find_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class list_Administration : public TAO::Upcall_Command { @@ -2440,7 +2325,7 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::CORBA::ULong>::in_arg_type arg_1 = @@ -2448,38 +2333,38 @@ namespace POA_ImplementationRepository this->operation_details_, this->args_, 1); - + TAO::SArg_Traits< ImplementationRepository::ServerInformationList>::out_arg_type arg_2 = TAO::Portable_Server::get_out_arg< ImplementationRepository::ServerInformationList, TAO::SArg_Traits< ImplementationRepository::ServerInformationList>::out_arg_type> ( this->operation_details_, this->args_, 2); - + TAO::SArg_Traits< ImplementationRepository::ServerInformationIterator>::out_arg_type arg_3 = TAO::Portable_Server::get_out_arg< ImplementationRepository::ServerInformationIterator, TAO::SArg_Traits< ImplementationRepository::ServerInformationIterator>::out_arg_type> ( this->operation_details_, this->args_, 3); - + this->servant_->list ( arg_1 , arg_2 , arg_3 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } -// TAO_IDL - Generated from -// be\be_visitor_operation/operation_ss.cpp:192 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 void POA_ImplementationRepository::Administration::list_skel ( TAO_ServerRequest & server_request, @@ -2488,18 +2373,18 @@ void POA_ImplementationRepository::Administration::list_skel ( ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< void>::ret_val retval; TAO::SArg_Traits< ::CORBA::ULong>::in_arg_val _tao_how_many; TAO::SArg_Traits< ImplementationRepository::ServerInformationList>::out_arg_val _tao_server_list; TAO::SArg_Traits< ImplementationRepository::ServerInformationIterator>::out_arg_val _tao_server_iterator; - + TAO::Argument * const args[] = { &retval, @@ -2507,9 +2392,9 @@ void POA_ImplementationRepository::Administration::list_skel ( &_tao_server_list, &_tao_server_iterator }; - + static size_t const nargs = 4; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); @@ -2517,7 +2402,7 @@ void POA_ImplementationRepository::Administration::list_skel ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2530,19 +2415,122 @@ void POA_ImplementationRepository::Administration::list_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + +} +namespace POA_ImplementationRepository +{ + + + // TAO_IDL - Generated from + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + + class shutdown_Administration + : public TAO::Upcall_Command + { + public: + inline shutdown_Administration ( + POA_ImplementationRepository::Administration * servant, + TAO_Operation_Details const * operation_details, + TAO::Argument * const args[]) + : servant_ (servant) + , operation_details_ (operation_details) + , args_ (args) + { + } + + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) + { + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_type arg_1 = + TAO::Portable_Server::get_in_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_type> ( + this->operation_details_, + this->args_, + 1); + + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_type arg_2 = + TAO::Portable_Server::get_in_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_type> ( + this->operation_details_, + this->args_, + 2); + + this->servant_->shutdown ( + arg_1 + , arg_2 + ACE_ENV_ARG_PARAMETER); + + } + + private: + POA_ImplementationRepository::Administration * const servant_; + TAO_Operation_Details const * const operation_details_; + TAO::Argument * const * const args_; + }; + } -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:169 + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_ss.cpp:192 + +void POA_ImplementationRepository::Administration::shutdown_skel ( + TAO_ServerRequest & server_request, + void * TAO_INTERCEPTOR (servant_upcall), + void * servant + ACE_ENV_ARG_DECL + ) +{ + + +#if TAO_HAS_INTERCEPTORS == 1 + static CORBA::TypeCode_ptr const * const exceptions = 0; + static size_t const nexceptions = 0; +#endif /* TAO_HAS_INTERCEPTORS */ + + TAO::SArg_Traits< void>::ret_val retval; + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_val _tao_activators; + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::in_arg_val _tao_servers; + + TAO::Argument * const args[] = + { + &retval, + &_tao_activators, + &_tao_servers + }; + + static size_t const nargs = 3; + + POA_ImplementationRepository::Administration * const impl = + static_cast<POA_ImplementationRepository::Administration *> (servant); + + shutdown_Administration command ( + impl, + server_request.operation_details (), + args); + + TAO::Upcall_Wrapper upcall_wrapper; + upcall_wrapper.upcall (server_request + , args + , nargs + , command +#if TAO_HAS_INTERCEPTORS == 1 + , servant_upcall + , exceptions + , nexceptions +#endif /* TAO_HAS_INTERCEPTORS == 1 */ + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + +} + +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:169 namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class _is_a_Administration_Upcall_Command : public TAO::Upcall_Command { @@ -2556,68 +2544,68 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type> ( this->operation_details_, this->args_); - + TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = TAO::Portable_Server::get_in_arg< CORBA::Char *, TAO::SArg_Traits< CORBA::Char *>::in_arg_type> ( this->operation_details_, this->args_, 1); - - + + retval = this->servant_-> _is_a ( arg_1 ACE_ENV_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } void POA_ImplementationRepository::Administration::_is_a_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_repository_id; - + TAO::Argument * const args[] = { &retval, &_tao_repository_id }; - + static size_t const nargs = 2; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); - + _is_a_Administration_Upcall_Command command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2630,16 +2618,16 @@ void POA_ImplementationRepository::Administration::_is_a_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class _non_existent_Administration_Upcall_Command : public TAO::Upcall_Command { @@ -2653,59 +2641,59 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean, TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type> ( this->operation_details_, this->args_); - - + + retval = this->servant_-> _non_existent ( ACE_ENV_SINGLE_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } void POA_ImplementationRepository::Administration::_non_existent_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; - + TAO::Argument * const args[] = { &retval }; - + static size_t const nargs = 1; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); - + _non_existent_Administration_Upcall_Command command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2718,18 +2706,18 @@ void POA_ImplementationRepository::Administration::_non_existent_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } -// TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:393 +// TAO_IDL - Generated from +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:393 void POA_ImplementationRepository::Administration::_interface_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * /* servant_upcall */, void * servant ACE_ENV_ARG_DECL @@ -2739,30 +2727,30 @@ void POA_ImplementationRepository::Administration::_interface_skel ( ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( TAO_ORB_Core::ifr_client_adapter_name () ); - + if (_tao_adapter == 0) { ACE_THROW (CORBA::INTF_REPOS (CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO)); } - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); - CORBA::InterfaceDef_ptr _tao_retval = + CORBA::InterfaceDef_ptr _tao_retval = impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK; - + server_request.init_reply (); TAO_OutputCDR &_tao_out = *server_request.outgoing (); - + CORBA::Boolean const _tao_result = _tao_adapter->interfacedef_cdr_insert ( _tao_out, _tao_retval ); - + _tao_adapter->dispose (_tao_retval); - + if (_tao_result == 0) { ACE_THROW (CORBA::MARSHAL ()); @@ -2771,11 +2759,11 @@ void POA_ImplementationRepository::Administration::_interface_skel ( namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_operation/upcall_command_ss.cpp:127 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/upcall_command_ss.cpp:127 + class _get_component_Administration_Upcall_Command : public TAO::Upcall_Command { @@ -2789,59 +2777,59 @@ namespace POA_ImplementationRepository , args_ (args) { } - + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) { TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::CORBA::Object, TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type> ( this->operation_details_, this->args_); - - + + retval = this->servant_-> _get_component ( ACE_ENV_SINGLE_ARG_PARAMETER); - + } - + private: POA_ImplementationRepository::Administration * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; - + } void POA_ImplementationRepository::Administration::_component_skel ( - TAO_ServerRequest & server_request, + TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ACE_ENV_ARG_DECL ) { - - + + #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static size_t const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ - + TAO::SArg_Traits< ::CORBA::Object>::ret_val retval; - + TAO::Argument * const args[] = { &retval }; - + static size_t const nargs = 1; - + POA_ImplementationRepository::Administration * const impl = static_cast<POA_ImplementationRepository::Administration *> (servant); - + _get_component_Administration_Upcall_Command command ( impl, server_request.operation_details (), args); - + TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args @@ -2854,7 +2842,7 @@ void POA_ImplementationRepository::Administration::_component_skel ( #endif /* TAO_HAS_INTERCEPTORS == 1 */ ACE_ENV_ARG_PARAMETER); ACE_CHECK; - + } CORBA::Boolean POA_ImplementationRepository::Administration::_is_a ( @@ -2881,7 +2869,7 @@ const char* POA_ImplementationRepository::Administration::_interface_repository_ } // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:940 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:754 void POA_ImplementationRepository::Administration::_dispatch ( TAO_ServerRequest & req, @@ -2896,29 +2884,29 @@ void POA_ImplementationRepository::Administration::_dispatch ( } // TAO_IDL - Generated from -// be\be_visitor_interface/interface_ss.cpp:891 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_ss.cpp:705 ImplementationRepository::Administration * POA_ImplementationRepository::Administration::_this (ACE_ENV_SINGLE_ARG_DECL) { TAO_Stub *stub = this->_create_stub (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); - + TAO_Stub_Auto_Ptr safe_stub (stub); CORBA::Object_ptr tmp = CORBA::Object::_nil (); - + CORBA::Boolean _tao_opt_colloc = stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects (); - + ACE_NEW_RETURN ( tmp, CORBA::Object (stub, _tao_opt_colloc, this), 0 ); - + CORBA::Object_var obj = tmp; (void) safe_stub.release (); - + typedef ::ImplementationRepository::Administration STUB_SCOPED_NAME; return TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow ( diff --git a/TAO/tao/ImR_Client/ImplRepoS.h b/TAO/tao/ImR_Client/ImplRepoS.h index 6457975c7d4..8435f8704d6 100644 --- a/TAO/tao/ImR_Client/ImplRepoS.h +++ b/TAO/tao/ImR_Client/ImplRepoS.h @@ -26,15 +26,14 @@ // http://www.cs.wustl.edu/~schmidt/TAO.html // TAO_IDL - Generated from -// be\be_codegen.cpp:391 +// .\be\be_codegen.cpp:391 -#ifndef _TAO_IDL_ORIG_IMPLREPOS_H_ -#define _TAO_IDL_ORIG_IMPLREPOS_H_ +#ifndef _TAO_IDL_IMPLREPOS_H_ +#define _TAO_IDL_IMPLREPOS_H_ #include /**/ "ace/pre.h" #include "ImplRepoC.h" -#include "tao/ImR_Client/ServerObjectS.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -54,84 +53,84 @@ #endif /* __BORLANDC__ */ // TAO_IDL - Generated from -// be\be_visitor_module/module_sh.cpp:49 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_sh.cpp:49 namespace POA_ImplementationRepository { - - + + // TAO_IDL - Generated from - // be\be_visitor_interface/interface_sh.cpp:87 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_sh.cpp:87 + class ServerInformationIterator; typedef ServerInformationIterator *ServerInformationIterator_ptr; - + class _TAO_ServerInformationIterator_Direct_Proxy_Impl; class _TAO_ServerInformationIterator_Strategized_Proxy_Broker; - + class TAO_IMR_Client_Export ServerInformationIterator : public virtual PortableServer::ServantBase { protected: ServerInformationIterator (void); - + public: // Useful for template programming. typedef ::ImplementationRepository::ServerInformationIterator _stub_type; typedef ::ImplementationRepository::ServerInformationIterator_ptr _stub_ptr_type; typedef ::ImplementationRepository::ServerInformationIterator_var _stub_var_type; - + ServerInformationIterator (const ServerInformationIterator& rhs); virtual ~ServerInformationIterator (void); - + virtual CORBA::Boolean _is_a ( const char* logical_type_id ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static void _is_a_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _non_existent_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _interface_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _component_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + virtual void _dispatch ( TAO_ServerRequest & req, void * servant_upcall ACE_ENV_ARG_DECL ); - + ::ImplementationRepository::ServerInformationIterator *_this ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ); - + virtual const char* _interface_repository_id (void) const; - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual CORBA::Boolean next_n ( ::CORBA::ULong how_many, ::ImplementationRepository::ServerInformationList_out servers @@ -140,24 +139,24 @@ namespace POA_ImplementationRepository ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + static void next_n_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void destroy ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + static void destroy_skel ( TAO_ServerRequest & server_request, void * servant_upcall, @@ -165,29 +164,29 @@ namespace POA_ImplementationRepository ACE_ENV_ARG_DECL ); }; - + /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration + // Strategized Proxy Broker Declaration // - + // TAO_IDL - Generated from - // be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 + class TAO_IMR_Client_Export _TAO_ServerInformationIterator_Strategized_Proxy_Broker : public virtual TAO::Collocation_Proxy_Broker { - public: + public: _TAO_ServerInformationIterator_Strategized_Proxy_Broker (void); - + virtual ~_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void); - + TAO::Collocation_Strategy get_strategy ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::SystemException)); - + void dispatch ( CORBA::Object_ptr obj, @@ -200,34 +199,34 @@ namespace POA_ImplementationRepository ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::Exception)); - + static _TAO_ServerInformationIterator_Strategized_Proxy_Broker * the_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void); }; - + // - // End Strategized Proxy Broker Declaration + // End Strategized Proxy Broker Declaration /////////////////////////////////////////////////////////////////////// - - - - // TAO_IDL - Generated from - // be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - + + + + // TAO_IDL - Generated from + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 + /////////////////////////////////////////////////////////////////////// // Direct Impl. Declaration // - + class TAO_IMR_Client_Export _TAO_ServerInformationIterator_Direct_Proxy_Impl { public: _TAO_ServerInformationIterator_Direct_Proxy_Impl (void); - + virtual ~_TAO_ServerInformationIterator_Direct_Proxy_Impl (void) {} - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void next_n ( TAO_Abstract_ServantBase *servant, @@ -238,10 +237,10 @@ namespace POA_ImplementationRepository ACE_THROW_SPEC (( CORBA::SystemException )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void destroy ( TAO_Abstract_ServantBase *servant, @@ -253,85 +252,85 @@ namespace POA_ImplementationRepository CORBA::SystemException )); }; - + // // Direct Proxy Impl. Declaration /////////////////////////////////////////////////////////////////////// - - - + + + // TAO_IDL - Generated from - // be\be_visitor_interface/interface_sh.cpp:87 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/interface_sh.cpp:87 + class Administration; typedef Administration *Administration_ptr; - + class _TAO_Administration_Direct_Proxy_Impl; class _TAO_Administration_Strategized_Proxy_Broker; - + class TAO_IMR_Client_Export Administration : public virtual PortableServer::ServantBase { protected: Administration (void); - + public: // Useful for template programming. typedef ::ImplementationRepository::Administration _stub_type; typedef ::ImplementationRepository::Administration_ptr _stub_ptr_type; typedef ::ImplementationRepository::Administration_var _stub_var_type; - + Administration (const Administration& rhs); virtual ~Administration (void); - + virtual CORBA::Boolean _is_a ( const char* logical_type_id ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static void _is_a_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _non_existent_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _interface_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _component_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + virtual void _dispatch ( TAO_ServerRequest & req, void * servant_upcall ACE_ENV_ARG_DECL ); - + ::ImplementationRepository::Administration *_this ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ); - + virtual const char* _interface_repository_id (void) const; - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void activate_server ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -341,59 +340,37 @@ namespace POA_ImplementationRepository ::ImplementationRepository::NotFound, ::ImplementationRepository::CannotActivate )) = 0; - + static void activate_server_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - - // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - - virtual void register_server ( - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) = 0; - - static void register_server_skel ( - TAO_ServerRequest & server_request, - void * servant_upcall, - void * servant - ACE_ENV_ARG_DECL - ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - - virtual void reregister_server ( + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + + virtual void add_or_update_server ( const char * server, const ::ImplementationRepository::StartupOptions & options ACE_ENV_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, ::ImplementationRepository::NotFound )) = 0; - - static void reregister_server_skel ( + + static void add_or_update_server_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void remove_server ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -402,17 +379,17 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )) = 0; - + static void remove_server_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void shutdown_server ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -421,17 +398,17 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )) = 0; - + static void shutdown_server_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void server_is_running ( const char * server, const char * partial_ior, @@ -442,17 +419,17 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )) = 0; - + static void server_is_running_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void server_is_shutting_down ( const char * server ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -461,37 +438,36 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )) = 0; - + static void server_is_shutting_down_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void find ( const char * server, ::ImplementationRepository::ServerInformation_out info ACE_ENV_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound + CORBA::SystemException )) = 0; - + static void find_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + // TAO_IDL - Generated from - // be\be_visitor_operation/operation_sh.cpp:45 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + virtual void list ( ::CORBA::ULong how_many, ::ImplementationRepository::ServerInformationList_out server_list, @@ -501,37 +477,56 @@ namespace POA_ImplementationRepository ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + static void list_skel ( TAO_ServerRequest & server_request, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); + + // TAO_IDL - Generated from + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/operation_sh.cpp:45 + + virtual void shutdown ( + ::CORBA::Boolean activators, + ::CORBA::Boolean servers + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void shutdown_skel ( + TAO_ServerRequest & server_request, + void * servant_upcall, + void * servant + ACE_ENV_ARG_DECL + ); }; - + /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration + // Strategized Proxy Broker Declaration // - + // TAO_IDL - Generated from - // be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 + class TAO_IMR_Client_Export _TAO_Administration_Strategized_Proxy_Broker : public virtual TAO::Collocation_Proxy_Broker { - public: + public: _TAO_Administration_Strategized_Proxy_Broker (void); - + virtual ~_TAO_Administration_Strategized_Proxy_Broker (void); - + TAO::Collocation_Strategy get_strategy ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::SystemException)); - + void dispatch ( CORBA::Object_ptr obj, @@ -544,34 +539,34 @@ namespace POA_ImplementationRepository ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::Exception)); - + static _TAO_Administration_Strategized_Proxy_Broker * the_TAO_Administration_Strategized_Proxy_Broker (void); }; - + // - // End Strategized Proxy Broker Declaration + // End Strategized Proxy Broker Declaration /////////////////////////////////////////////////////////////////////// - - - - // TAO_IDL - Generated from - // be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - + + + + // TAO_IDL - Generated from + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 + /////////////////////////////////////////////////////////////////////// // Direct Impl. Declaration // - + class TAO_IMR_Client_Export _TAO_Administration_Direct_Proxy_Impl { public: _TAO_Administration_Direct_Proxy_Impl (void); - + virtual ~_TAO_Administration_Direct_Proxy_Impl (void) {} - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void activate_server ( TAO_Abstract_ServantBase *servant, @@ -584,12 +579,12 @@ namespace POA_ImplementationRepository ::ImplementationRepository::NotFound, ::ImplementationRepository::CannotActivate )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - register_server ( + add_or_update_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args @@ -597,15 +592,14 @@ namespace POA_ImplementationRepository ) ACE_THROW_SPEC (( CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - reregister_server ( + remove_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args @@ -613,15 +607,14 @@ namespace POA_ImplementationRepository ) ACE_THROW_SPEC (( CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - remove_server ( + shutdown_server ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args @@ -631,12 +624,12 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - shutdown_server ( + server_is_running ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args @@ -646,12 +639,12 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - server_is_running ( + server_is_shutting_down ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args @@ -661,42 +654,40 @@ namespace POA_ImplementationRepository CORBA::SystemException, ::ImplementationRepository::NotFound )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - server_is_shutting_down ( + find ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound + CORBA::SystemException )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - find ( + list ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args ACE_ENV_ARG_DECL ) ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound + CORBA::SystemException )); - + // TAO_IDL - Generated from - // be\be_visitor_operation/proxy_impl_xh.cpp:24 - + // c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_operation/proxy_impl_xh.cpp:24 + static void - list ( + shutdown ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args, int num_args @@ -706,20 +697,20 @@ namespace POA_ImplementationRepository CORBA::SystemException )); }; - + // // Direct Proxy Impl. Declaration /////////////////////////////////////////////////////////////////////// - - + + // TAO_IDL - Generated from -// be\be_visitor_module/module_sh.cpp:80 +// c:\cvsdoc\ace_wrappers\tao\tao_idl\be\be_visitor_module/module_sh.cpp:80 } // module ImplementationRepository -// TAO_IDL - Generated from -// be\be_codegen.cpp:995 +// TAO_IDL - Generated from +// .\be\be_codegen.cpp:995 diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index d9375e76fa0..e8efe0ffcf3 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -451,9 +451,10 @@ TAO_ORB_Core::init (int &argc, char *argv[] ACE_ENV_ARG_DECL) // explicit (and the whole objref is readable by mortals). // BEGIN COMMENTS FROM IIOP-1.4 const ACE_TCHAR *opt = current_arg; - if (ACE_OS::strcasecmp (opt, - ACE_TEXT("URL")) == 0) + if (ACE_OS::strcasecmp (opt, ACE_TEXT("URL")) == 0) use_ior = false; + else if (ACE_OS::strcasecmp (opt, ACE_TEXT("IOR")) == 0) + use_ior = true; arg_shifter.consume_arg (); } |