diff options
Diffstat (limited to 'TAO')
98 files changed, 6923 insertions, 29940 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 26c4801b96e..9b4da9bc42d 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,247 @@ +Fri Sep 24 13:16:44 MST 2004 Trevor Fields <fields_t@ociweb.com> + + This is the merge of changes to the Implementation Repository into the + DOC group repository. The original work was done mostly by Justin Michel. + + * orbsvcs/ImplRepo_Service/Activator_Loader.h: + * orbsvcs/ImplRepo_Service/Activator_Loader.cpp: + * orbsvcs/ImplRepo_Service/Locator_Loader.h: + * orbsvcs/ImplRepo_Service/Locator_Loader.cpp: + * orbsvcs/ImplRepo_Service/activator_export.h: + * orbsvcs/ImplRepo_Service/locator_export.h: + * orbsvcs/ImplRepo_Service/utils.h: + * orbsvcs/ImplRepo_Service/Activator_NT_Service.h: + * orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp: + * orbsvcs/ImplRepo_Service/Activator_Options.h: + * orbsvcs/ImplRepo_Service/Activator_Options.cpp: + * orbsvcs/ImplRepo_Service/Adapter_Activator.h: + * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp: + * orbsvcs/ImplRepo_Service/Forwarder.h: + * orbsvcs/ImplRepo_Service/Forwarder.cpp: + * orbsvcs/ImplRepo_Service/INS_Locator.h: + * orbsvcs/ImplRepo_Service/INS_Locator.cpp: + * orbsvcs/ImplRepo_Service/ImR_Activator.cpp: + * 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/ImplRepo_Service.mpc: + * orbsvcs/ImplRepo_Service/Iterator.h: + * orbsvcs/ImplRepo_Service/Iterator.cpp: + * orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp: + * orbsvcs/ImplRepo_Service/Locator_Options.h: + * orbsvcs/ImplRepo_Service/Locator_Options.cpp: + * orbsvcs/ImplRepo_Service/Multi_Iterator.h: + * orbsvcs/ImplRepo_Service/Multi_Iterator.cpp: + * orbsvcs/ImplRepo_Service/README.txt: + * orbsvcs/ImplRepo_Service/Server_Info.h: + * orbsvcs/ImplRepo_Service/Server_Info.cpp: + * orbsvcs/ImplRepo_Service/Server_Repository.h: + * orbsvcs/ImplRepo_Service/Server_Repository.cpp: + * orbsvcs/ImplRepo_Service/XML_ContentHandler.h: + * orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp: + * orbsvcs/ImplRepo_Service/tao_imr_i.h: + * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: + + * orbsvcs/orbsvcs/IOR_Multicast.h: + * orbsvcs/orbsvcs/IOR_Multicast.cpp: + + * orbsvcs/tests/ImplRepo/run_test.pl: + + * tao/PortableServer/ImR_Locator.pidl: + * tao/PortableServer/ImR_LocatorC.h: + * tao/PortableServer/ImR_LocatorC.i: + * tao/PortableServer/ImR_LocatorC.cpp: + * tao/PortableServer/ImR_LocatorS.h: + * tao/PortableServer/ImR_LocatorS.i: + * tao/PortableServer/ImR_LocatorS.cpp: + * tao/PortableServer/ImplRepo.pidl: + * tao/PortableServer/ImplRepoC.h: + * tao/PortableServer/ImplRepoC.i: + * tao/PortableServer/ImplRepoC.cpp: + * tao/PortableServer/ImplRepoS.h: + * tao/PortableServer/ImplRepoS.i: + * tao/PortableServer/ImplRepoS.cpp: + + Added support for using the ImR locator and activator + services within the ACE Service Configurator framework. + Split locator and activator into separate libraries and + executables. + Refactored Activator_Options and Locator_Options to + facilitate use in separate libraries. + Fixed problems with activator persistence including support + for environment variables. + Fixed problems with the list() operation and iterators, + although the better solution will likely be to eliminate + the iterators entirely. + Simplified Service_Info class into a simple struct which + further simplified and enhanced the startup code for servers. + Refactored some locator servant options to throw NO_IMPLEMENT + until the IDL is updated to correctly remove these operations. + Fixed many miscellaneous bugs and performance problems. + Removed the ready_check() feature, as the current implementation + was broken, and the correct solution is relatively + straightforward, and will likely be added soon. + Fixed the broken ImR_Multicast implementation. A char* is NOT + a string, and should never be used as such. ACE_CString or the + equivalent is a much better choice. There are likely other + lurking bugs of this type in ACE/TAO. + Removed the unused logical_server from the ServerInformation + type in ImplRepo.pidl. Also removed the Address typedef and + changed the terminology from location to partial_ior. + + * orbsvcs/examples/ImR/Combined_Service/test.idl: + * orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc: + * orbsvcs/examples/ImR/Combined_Service/combined.cpp: + * orbsvcs/examples/ImR/Combined_Service/controller.cpp: + * orbsvcs/examples/ImR/Combined_Service/dynserver.h: + * orbsvcs/examples/ImR/Combined_Service/dynserver.cpp: + * orbsvcs/examples/ImR/Combined_Service/dynserver_export.h: + * orbsvcs/examples/ImR/Combined_Service/readme: + * orbsvcs/examples/ImR/Combined_Service/run_test.pl: + * orbsvcs/examples/ImR/Combined_Service/service_config.idl: + * orbsvcs/examples/ImR/Combined_Service/start_all.conf: + * orbsvcs/examples/ImR/Combined_Service/test.cpp: + * orbsvcs/examples/ImR/Combined_Service/test_server.cpp: + + Added an example of using ImR_Locator and ImR_Activator service + from the ACE Service Configurator. The test starts a locator, + activator, and test server in one process using the service configurator + framework. Also provides a corba-ified service configurator that can + be controlled using the provided command line client. + + * orbsvcs/ImplRepo_Service/Repository_Configuration.h: + * orbsvcs/ImplRepo_Service/Repository_Configuration.cpp: + * orbsvcs/ImplRepo_Service/Server_Repository.h: + * orbsvcs/ImplRepo_Service/Server_Repository.cpp: + * orbsvcs/ImplRepo_Service/XML_ContentHandler.h: + * orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp: + * tao/PortableServer/ImR_Activator.pidl: + * tao/PortableServer/ImR_Locator.pidl: + * tao/PortableServer/ImR_LocatorC.h: + * tao/PortableServer/ImR_LocatorC.i: + * tao/PortableServer/ImR_LocatorC.cpp: + * tao/PortableServer/ImR_LocatorS.h: + * tao/PortableServer/ImR_LocatorS.i: + * tao/PortableServer/ImR_LocatorS.cpp: + * tao/PortableServer/ImplRepo.pidl: + * tao/PortableServer/ImplRepoC.h: + * tao/PortableServer/ImplRepoC.i: + * tao/PortableServer/ImplRepoC.cpp: + * tao/PortableServer/ImplRepoS.h: + * tao/PortableServer/ImplRepoS.i: + * tao/PortableServer/ImplRepoS.cpp: + + Removed these files. Most were only necessary due to the complication of + splitting the persistent state between the activator and locator. + + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp (is_alive): + + Masked out all bits in the minor code except those that correspond + to the "location". See corbafwd.h for information about how the + minor code is laid out. + + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + + Fixed ORB_init calls to specify a hopefully unique ORBid + for the activator and locator orbs. + + * orbsvcs/ImplRepo_Service/Activator_Info.h: + * orbsvcs/ImplRepo_Service/Activator_Info.cpp: + * orbsvcs/ImplRepo_Service/Activator_Loader.h: + * orbsvcs/ImplRepo_Service/Activator_NT_Service.h: + * orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp: + * orbsvcs/ImplRepo_Service/Activator_Options.h: + * orbsvcs/ImplRepo_Service/Activator_Options.cpp: + * orbsvcs/ImplRepo_Service/Adapter_Activator.h: + * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp: + * orbsvcs/ImplRepo_Service/Forwarder.h: + * orbsvcs/ImplRepo_Service/Forwarder.cpp: + * orbsvcs/ImplRepo_Service/INS_Locator.h: + * orbsvcs/ImplRepo_Service/INS_Locator.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.idl: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.h: + * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp: + * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc: + * orbsvcs/ImplRepo_Service/Iterator.h: + * orbsvcs/ImplRepo_Service/Iterator.cpp: + * orbsvcs/ImplRepo_Service/Locator_NT_Service.h: + * 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/Locator_XMLHandler.h: + * orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp: + * orbsvcs/ImplRepo_Service/README.txt: + * orbsvcs/ImplRepo_Service/Server_Info.h: + * orbsvcs/ImplRepo_Service/Server_Info.cpp: + * orbsvcs/ImplRepo_Service/activator_idl_export.h: + * orbsvcs/ImplRepo_Service/locator_idl_export.h: + * orbsvcs/ImplRepo_Service/repository.xml: + * orbsvcs/ImplRepo_Service/tao_imr.cpp: + * orbsvcs/ImplRepo_Service/tao_imr_i.h: + * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: + + Refactored ImR to move most functionality from the activator into + the locator. All activator->locator and locator->activator interfaces + are moved to new idl files in this directory, thereby making PortableServer + smaller. The activator no longer has need for persistence since it's little + more than a process launcher now. The Activator has been rewritten to use + AMH, which allows the locator to block waiting for the servers to startup + without wasting thread resources or inducing stack overflow. + + The locator now persists all activator and server information, and can use + any of the three persistence formats for this. + + Added the StartLimit feature, wherein the ImR will try to start a server + up to StartLimit times before giving up. From the point of view of tao_imr, this + feature is called retry_count, which = start_limit - 1. The default is 0, or disabled. + + Reintroduced the ping interval command line option for the Locator. If the server + has been pinged in the last N seconds, then it will be assumed to be still running. + This should cut down on some potential unnecessary traffic. The default is 500ms, and + 0 can be specified to disable the verification feature. Which is nice. + + Fixed many miscellaneous bugs found while refactoring, and adding features. + + However, there are some existing know problems. Specifically the INS_Locator no + longer seems to work, although it seems to return the same result as 1.3a before this + merge in which it was working fine. Maybe the merge will take care of the problem. + Also the persistent_ir test is not working. Could be related. + + * orbsvcs/tests/ImplRepo/locked/run_test.pl: + * orbsvcs/tests/ImplRepo/run_test.pl: + + Updated to reflect new/moved command line params. + + * tao/PortableServer/ImplRepo.idl: + * tao/PortableServer/POA.cpp: + * tao/PortableServer/PortableServer.mpc: + + Changed to use idl instead of pidl. + + * utils/catior/catior.cpp: + + Fixed bug with crash in incorrect use of isprint() + + * orbsvcs/tests/ImplRepo/scale/client.conf: + * orbsvcs/tests/ImplRepo/scale/client.cpp: + * orbsvcs/tests/ImplRepo/scale/run_test.pl: + * orbsvcs/tests/ImplRepo/scale/scaletest.mpc: + * orbsvcs/tests/ImplRepo/scale/server.cpp: + * orbsvcs/tests/ImplRepo/scale/server_i.h: + * orbsvcs/tests/ImplRepo/scale/server_i.cpp: + * orbsvcs/tests/ImplRepo/scale/test.idl: + + This new scalability test should help track down some remaining + flaws in the ImR. It was originally submitted by SoftComputer, but + has been extensively modified. + Fri Sep 24 12:58:37 2004 Jeff Parsons <j.parsons@vanderbilt.edu> * examples/Kokyu_dsrt_schedulers/mif_example/test_i.cpp: @@ -771,6 +1015,7 @@ Wed Sep 15 21:25:28 2004 Jeff Parsons <j.parsons@vanderbilt.edu> references except those for the predefined types, and there was an off-by-one error. + Tue Sep 14 17:12:41 2004 J.T. Conklin <jtc@acorntoolworks.com> * orbsvcs/orbsvcs/Makefile.am: diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Info.cpp b/TAO/orbsvcs/ImplRepo_Service/Activator_Info.cpp new file mode 100644 index 00000000000..a3717893ef4 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Info.cpp @@ -0,0 +1,27 @@ +// $Id$ +#include "Activator_Info.h" + +Activator_Info::Activator_Info +(const ACE_CString& aname, + CORBA::Long atoken, + const ACE_CString& aior, + ImplementationRepository::Activator_ptr act) + : name(aname) + , token(atoken) + , ior(aior) + , activator (ImplementationRepository::Activator::_duplicate (act)) + , waiting_clients(0) +{ +} +void +Activator_Info::reset() +{ + ior = ""; + activator = ImplementationRepository::Activator::_nil(); +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex>; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Info.h b/TAO/orbsvcs/ImplRepo_Service/Activator_Info.h new file mode 100644 index 00000000000..5bc4592eaf1 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Info.h @@ -0,0 +1,36 @@ +// $Id$ +#ifndef ACTIVATOR_INFO_H +#define ACTIVATOR_INFO_H + +#include "ace/Bound_Ptr.h" + +#include "ImR_ActivatorC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** +* @brief Information about IMR registered Activators. +*/ +struct Activator_Info +{ + Activator_Info (const ACE_CString& aname, + CORBA::Long atoken, + const ACE_CString& aior, + ImplementationRepository::Activator_ptr act = + ImplementationRepository::Activator::_nil ()); + + /// Reset the connection portion + void reset(); + + ACE_CString name; + CORBA::Long token; + ACE_CString ior; + ImplementationRepository::Activator_var activator; + int waiting_clients; +}; + +typedef ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> Activator_Info_Ptr; + +#endif /* ACTIVATOR_INFO_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.cpp b/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.cpp new file mode 100644 index 00000000000..6ff03887158 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.cpp @@ -0,0 +1,119 @@ +// $Id$ + +#include "Activator_Loader.h" +#include "ace/Dynamic_Service.h" +#include "ace/Task.h" + +class ImR_Activator_ORB_Runner : public ACE_Task_Base +{ + ImR_Activator_Loader& service_; +public: + ImR_Activator_ORB_Runner(ImR_Activator_Loader& service) + : service_(service) + { + } + virtual int svc() + { + // Block until service_.fini() calls orb->destroy() + this->service_.run(); + return 0; + } +}; + +ImR_Activator_Loader::ImR_Activator_Loader(void) +{ +} + +// For now, we will assume that it's sufficient to start +// the service in its own thread. Later, if necessary, we +// can add a command line option to allow the imr to use +// the same orb as other tao services, however the imr +// is currently written with the assumption that it's running +// in its own orb. +int +ImR_Activator_Loader::init (int argc, ACE_TCHAR *argv[] ACE_ENV_ARG_DECL) +{ + ACE_TRY + { + int err = this->opts_.init(argc, argv); + if (err != 0) + return -1; + + // Creates it's own internal orb, which we must run later + err = this->service_.init(this->opts_ ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + if (err != 0) + return -1; + + // Create a thread in which to run the service + ACE_ASSERT(this->runner_.get() == 0); + this->runner_.reset(new ImR_Activator_ORB_Runner(*this)); + this->runner_->activate(); + } + ACE_CATCHANY + { + return -1; + } + ACE_ENDTRY; + return 0; +} + +int +ImR_Activator_Loader::fini (void) +{ + ACE_ASSERT(this->runner_.get() != 0); + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + int ret = this->service_.fini(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->runner_->wait(); + this->runner_.reset(0); + return ret; + } + ACE_CATCHANY + { + return -1; + } + ACE_ENDTRY; + return -1; +} + +CORBA::Object_ptr +ImR_Activator_Loader::create_object (CORBA::ORB_ptr, + int, + ACE_TCHAR ** + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_THROW_RETURN(CORBA::NO_IMPLEMENT(), CORBA::Object::_nil()); +} + +int +ImR_Activator_Loader::run(void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + return this->service_.run(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHALL + { + ACE_ERROR((LM_ERROR, "Exception in ImR_Locator_ORB_Runner()\n")); + return -1; + } + ACE_ENDTRY; + return 0; +} + +ACE_FACTORY_DEFINE (Activator, ImR_Activator_Loader) + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Dynamic_Service<ImR_Activator_Loader>; +template class ACE_Auto_Ptr<ImR_Activator_ORB_Runner>; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Dynamic_Service<ImR_Activator_Loader> +#pragma instantiate ACE_Auto_Ptr<ImR_Activator_ORB_Runner> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h b/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h new file mode 100644 index 00000000000..bf6573bd51c --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Loader.h @@ -0,0 +1,48 @@ +// $Id$ +#ifndef TAO_IMR_ACTIVATOR_LOADER_H +#define TAO_IMR_ACTIVATOR_LOADER_H + +#include "ImR_Activator_i.h" +#include "Activator_Options.h" + +#include "tao/Object_Loader.h" + +#include "ace/Auto_Ptr.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class ImR_Activator_ORB_Runner; + +class Activator_Export ImR_Activator_Loader : public TAO_Object_Loader +{ +public: + ImR_Activator_Loader(void); + + virtual int init (int argc, ACE_TCHAR *argv[] ACE_ENV_ARG_DECL); + + virtual int fini (void); + + virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb, + int argc, + ACE_TCHAR *argv[] + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Unlike other service objects, we have our own orb. + int run(void); + +private: + ImR_Activator_i service_; + Options opts_; + ACE_Auto_Ptr<ImR_Activator_ORB_Runner> runner_; + +private: + ACE_UNIMPLEMENTED_FUNC (ImR_Activator_Loader (const ImR_Activator_Loader &)) + ACE_UNIMPLEMENTED_FUNC (ImR_Activator_Loader &operator = (const ImR_Activator_Loader &)) +}; + +ACE_FACTORY_DECLARE (Activator, ImR_Activator_Loader) + +#endif diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp b/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp index 08eeb4b7824..fe766239984 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp @@ -16,6 +16,8 @@ #if defined (ACE_WIN32) #include "ImR_Activator_i.h" +#include "Activator_Options.h" + #include "tao/ORB_Core.h" /** @@ -57,13 +59,18 @@ int Activator_NT_Service::svc (void) { ImR_Activator_i server; + Options opts; - int status = 0; + if (opts.init_from_registry() != 0) + { + report_status (SERVICE_STOPPED); + return -1; + } ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { - status = server.init (ACE_ENV_SINGLE_ARG_PARAMETER); + int status = server.init (opts ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; if (status == -1) @@ -77,6 +84,9 @@ Activator_NT_Service::svc (void) server.run (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; + status = server.fini (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + report_status (SERVICE_STOPPED); } diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.h b/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.h index 1fc289707ed..339d06c5b19 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.h +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_NT_Service.h @@ -7,8 +7,8 @@ * * @author Darrell Brunsch <brunsch@cs.wustl.edu> * @author Jeff Parsons <parsons@cs.wustl.edu> - * @author John Tucker <jtucker@infoglide.com> - * @author Mike Vitalo <mvitalo@infoglide.com> + * @author John Tucker <jtucker@infoglide.com> + * @author Mike Vitalo <mvitalo@infoglide.com> */ //============================================================================= @@ -21,8 +21,13 @@ #include "ace/NT_Service.h" #include "ace/Singleton.h" +#include "ace/Synch.h" #include "tao/orbconf.h" +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + static const char * IMR_ACTIVATOR_SERVICE_NAME = "TAOIMRActivator"; static const char * IMR_ACTIVATOR_DISPLAY_NAME = "TAO Implementation Repository Activator"; static const char * IMR_ACTIVATOR_DESCRIPTION = "Implementation Repository Activator service for TAO"; @@ -51,8 +56,10 @@ private: friend class ACE_Singleton<Activator_NT_Service, MUTEX>; }; -typedef ACE_Singleton<Activator_NT_Service, Activator_NT_Service::MUTEX> SERVICE; +typedef ACE_Singleton<Activator_NT_Service, ACE_Mutex> SERVICE; #endif /* ACE_WIN32 */ #endif /* Activator_NT_Service_H */ + + diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp index a8f02762c14..427982545fa 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.cpp @@ -8,18 +8,15 @@ */ //============================================================================= #include "Activator_Options.h" -#include "Activator_NT_Service.h" -#include "tao/Strategies/advanced_resource.h" + #include "ace/Arg_Shifter.h" -#include "ace/ARGV.h" #include "ace/OS_NS_strings.h" -#include "ace/Mutex.h" +#include "ace/Log_Msg.h" ACE_RCSID (ImplRepo_Service, Options, "$Id$") - #if defined (ACE_WIN32) static const HKEY SERVICE_REG_ROOT = HKEY_LOCAL_MACHINE; // This string must agree with the one used in Activator_NT_Service.h @@ -27,35 +24,18 @@ static const ACE_TCHAR *SERVICE_REG_PATH = ACE_TEXT ("SYSTEM\\CurrentControlSet\\Services\\TAOIMRActivator\\Parameters"); #endif /* ACE_WIN32 */ -/** - * Default Constructor. Assigns default values to all the member variables. - */ Options::Options () - : repo_mode_ (REPO_NONE) - , debug_ (1) - , ping_interval_ (0, 200 * 1000) // 200 milliseconds - , service_ (false) - , startup_timeout_ (5) - , readonly_ (false) - , service_command_(SC_NONE) +: debug_ (1) +, service_ (false) +, service_command_(SC_NONE) { } -/** - * parse_args uses an ACE_Arg_Shifter to grab all the options that are - * specific to the ImR. - * If running as an nt service, most of these options will come from the - * registry instead. - * - * @retval 0 Success - * @retval -1 Error parsing args - * @retval 1 Success but we should exit. - */ int Options::parse_args (int &argc, char *argv[]) { ACE_Arg_Shifter shifter (argc, argv); - + while (shifter.is_anything_left ()) { if (ACE_OS::strcasecmp (shifter.get_current (), @@ -71,21 +51,26 @@ Options::parse_args (int &argc, char *argv[]) } if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("install")) == 0) + ACE_TEXT ("install")) == 0) { this->service_command_ = SC_INSTALL; } else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("remove")) == 0) + ACE_TEXT ("remove")) == 0) { this->service_command_ = SC_REMOVE; } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("install_no_locator")) == 0) + { + this->service_command_ = SC_INSTALL_NO_LOCATOR; + } else { ACE_ERROR((LM_ERROR, "Error: Unknown service command : %s\n", shifter.get_current())); this->print_usage (); return -1; - } + } } else if (ACE_OS::strcasecmp (shifter.get_current (), ACE_TEXT ("-d")) == 0) @@ -102,11 +87,6 @@ Options::parse_args (int &argc, char *argv[]) this->debug_ = ACE_OS::atoi (shifter.get_current ()); } else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("-l")) == 0) - { - this->readonly_ = true; - } - else if (ACE_OS::strcasecmp (shifter.get_current (), ACE_TEXT ("-o")) == 0) { shifter.consume_arg (); @@ -120,79 +100,10 @@ Options::parse_args (int &argc, char *argv[]) this->ior_output_file_ = shifter.get_current(); } else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("-p")) == 0) - { - shifter.consume_arg (); - - if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') - { - ACE_ERROR ((LM_ERROR, "Error: -p option needs a filename\n")); - this->print_usage (); - return -1; - } - - if (repo_mode_ != REPO_NONE) - { - ACE_ERROR ((LM_ERROR, "Error: Persistence already specified.\n")); - this->print_usage (); - return -1; - } - - this->file_name_ = shifter.get_current (); - this->repo_mode_ = REPO_HEAP_FILE; - } - else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("-r")) == 0) - { - if (repo_mode_ != REPO_NONE) - { - ACE_ERROR ((LM_ERROR, "Error: Persistence already specified.\n")); - this->print_usage (); - return -1; - } - this->repo_mode_ = REPO_REGISTRY; - } - else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("-x")) == 0) - { - shifter.consume_arg (); - - if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') - { - ACE_ERROR ((LM_ERROR, "Error: -x option needs a filename\n")); - this->print_usage (); - return -1; - } - - if (repo_mode_ != REPO_NONE) - { - ACE_ERROR ((LM_ERROR, "Error: Persistence already specified.\n")); - this->print_usage (); - return -1; - } - - this->file_name_ = shifter.get_current (); - this->repo_mode_ = REPO_XML_FILE; - } - else if (ACE_OS::strcasecmp (shifter.get_current (), ACE_TEXT ("-s")) == 0) { this->service_ = true; } - else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("-t")) == 0) - { - shifter.consume_arg (); - - if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') - { - ACE_ERROR ((LM_ERROR, "Error: -t option needs a value\n")); - this->print_usage (); - return -1; - } - this->startup_timeout_ = - ACE_Time_Value (ACE_OS::atoi (shifter.get_current ())); - } else if ((ACE_OS::strcasecmp (shifter.get_current (), ACE_TEXT ("-?")) == 0) || (ACE_OS::strcasecmp (shifter.get_current (), @@ -212,311 +123,50 @@ Options::parse_args (int &argc, char *argv[]) return 0; } -/** - * @retval 0 Success - * @retval -1 Error parsing args - * @retval 1 Success but we should exit. - */ int Options::init (int argc, char *argv[]) { // Make an initial pass through and grab the arguments that we recognize. // This may also run the commands to install or remove the nt service. int result = this->parse_args (argc, argv); - if (result != 0) { + if (result != 0) + { return result; } - ACE_ARGV orb_args; // Save the leftovers to a ACE_ARGV class - ACE_CString cmdline; // We'll save this in the registry when installing. - for (int i = 1; i < argc; ++i) - { - cmdline += ACE_CString(argv[i]) + ACE_CString(" "); - if (orb_args.add (argv[i]) == -1) - { - ACE_ERROR ((LM_ERROR, "Error: Could not save argument")); - return -1; - } - } - - result = run_service_command(cmdline); - - if (result != 0) - return result; - - char* argv_tmp = 0; - - // Load from the registry. This may replace the args. - if (this->load_registry_options(argv_tmp, orb_args) != 0) - return -1; - - ACE_Auto_Array_Ptr<char> argv_deleter(argv_tmp); - - if (orb_args.add ("-ORBSvcConfDirective\"static Advanced_Resource_Factory '-ORBReactorType select_st'\"") == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_ImR_Activator- Could not add" - " SvcConfDirective \n"), - -1); - } - - int orb_argc = orb_args.argc (); - - // Now initialize the orb and pass it the leftover arguments - ACE_TRY_NEW_ENV - { - // First make sure the Activator doesn't pick up an environment setting - // that would make it try to register its POAs with the ImplRepo. - char* use_IMR_env_var_value = ACE_OS::getenv ("TAO_USE_IMR"); - if (use_IMR_env_var_value != 0) - { - ACE_OS::putenv ("TAO_USE_IMR=0"); - } - - this->orb_ = CORBA::ORB_init (orb_argc, - orb_args.argv (), - 0 - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Caught exception \n"); - ACE_ERROR ((LM_ERROR, "Error: Cannot initialize ORB\n")); - return -1; - } - ACE_ENDTRY; - - // If there are any arguments left (besides the executable filename) - // then they were not picked up by us or the orb and must be - // unrecognized. - if (orb_argc > 1) - { - // Just print out the first option as an error - ACE_ERROR ((LM_ERROR, - "Unrecognized option: %s\n", - orb_args.argv ()[1])); - return -1; - } - - if (this->initialize_persistence () != 0) - return -1; + for (int i = 0; i < argc; ++i) + { + this->cmdline_ += ACE_CString(argv[i]) + ACE_CString(" "); + } - // Indicates successful parsing of command line. return 0; } +int +Options::init_from_registry (void) +{ + this->load_registry_options(); + return 0; +} -/** - * Just print out the usage message to STDERR - */ void Options::print_usage (void) const { ACE_ERROR ((LM_ERROR, "Usage:\n" "\n" - "ImR_Activator [-c cmd] [-d 0|1|2] [-l] [-m] [-o file]" - " [-r|-p file|-x file] [-s] [-t secs]\n" + "ImR_Activator [-c cmd] [-d 0|1|2] [-l] [-o file]\n" "\n" - " -c command Runs service commands ('install' or 'remove')\n" + " -c command Runs service commands \n" + " ('install' or 'remove' or 'install_no_locator')\n" " -d level Sets the debug level\n" - " -l Lock the database\n" " -o file Outputs the ImR's IOR to a file\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" - " -s Runs as a service (NT Only)\n" - " -t secs Timeout used for killing unresponsive servers\n") + " -s Runs as a service (NT Only)\n") ); } int -Options::initialize_persistence(void) -{ - switch (this->repo_mode_) - { - case REPO_NONE: - return this->initialize_non_persistence(); - case REPO_XML_FILE: - return this->initialize_xml_persistence(); - case REPO_HEAP_FILE: - return this->initialize_heap_persistence(); - case REPO_REGISTRY: - return this->initialize_registry_persistence(); - } - ACE_ERROR((LM_ERROR, "Error: Unknown persistence type.\n")); - return -1; -} -/** - * The most portable form of persistence is file persistence. Here - * we assign an ACE_Configuration_Heap object using @param filename - * as the file. - * - * @retval 0 Success - * @retval -1 Failure - */ -int -Options::initialize_heap_persistence (void) -{ - ACE_ASSERT(this->repo_config_.get() == 0); - - auto_ptr<Repository_Configuration> rc(new Repository_Configuration ("h")); - - if (rc->open (this->file_name_.c_str()) == 0) - { - this->repo_config_ = rc; - return 0; - } - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Error: Opening persistent heap file '%s'\n"), - this->file_name_.c_str())); - return -1; -} - - -/** - * On Windows, we have the option of using the Registry to store the - * server data. Assigns a ACE_Configuration_Win32Registry to - * this->repo_config_. On non-Win32 systems, just returns an error. - * - * @todo Where in the registry should this be stored? - * - * @retval 0 Success - * @retval -1 Failure - */ -int -Options::initialize_registry_persistence (void) -{ - ACE_ASSERT(this->repo_config_.get() == 0); -#if defined (ACE_WIN32) - auto_ptr<Repository_Configuration> rc(new Repository_Configuration ("w")); - this->repo_config_ = rc; - return 0; -#else /* ACE_WIN32 */ - ACE_ERROR_RETURN ((LM_ERROR, "Registry not supported on this platform"), -1); -#endif /* ACE_WIN32 */ -} - - -/** - * In cases where persistence isn't needed, create an object of - * the ACE_Configuration_Heap class to be used. Initializes - * this->repo_config_ to an opened ACE_Configuration_Heap. - * - * @retval 0 Success - * @retval -1 Failure - */ -int -Options::initialize_non_persistence (void) -{ - ACE_ASSERT(this->repo_config_.get() == 0); - - auto_ptr<Repository_Configuration> rc(new Repository_Configuration ("h")); - - if (rc->open () == 0) - { - this->repo_config_ = rc; - return 0; - } - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Error: Opening Configuration heap\n"))); - return -1; -} - -/// Initialize for the XML repository case. -int -Options::initialize_xml_persistence (void) -{ - ACE_ASSERT(this->repo_config_.get() == 0); - - auto_ptr<Repository_Configuration> rc(new Repository_Configuration ("x")); - - if (rc->open (this->file_name_.c_str()) == 0) - { - this->repo_config_ = rc; - return 0; - } - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Error: Opening Configuration XML file %s\n"), - this->file_name_.c_str() - )); - return -1; -} - -/** - * Executes the various commands that are useful for a NT service. Right - * now these include 'install' and 'remove'. Others, such as 'start' and - * 'stop' can be added, but the 'net' program in Windows already handles - * these commands. - * - * @todo Finish implementing Options::run_service_command - * @todo Update to unicode - */ -int -Options::run_service_command (const ACE_CString& cmdline) -{ - if (this->service_command_ == SC_NONE) - return 0; -#if defined (ACE_WIN32) - SERVICE::instance ()->name (IMR_ACTIVATOR_SERVICE_NAME, IMR_ACTIVATOR_DISPLAY_NAME); - - if (this->service_command_ == SC_INSTALL) - { - char pathname[_MAX_PATH * 2 + 3]; // +3 for the ' -s' at the end - - if (ACE_TEXT_GetModuleFileName(NULL, pathname, _MAX_PATH * 2) == 0) - { - ACE_ERROR ((LM_ERROR, "Error: Could not get module file name.\n")); - return -1; - } - - // Append the command used for running the implrepo as - ACE_OS::strcat (pathname, ACE_TEXT (" -s")); - - const char* DEPENDS_ON = "TAOIMRLocator"; // Must match Locator_NT_Service.h - - int ret = SERVICE::instance ()->insert (SERVICE_DEMAND_START, - SERVICE_ERROR_NORMAL, - pathname, - 0, // group - 0, // tag - DEPENDS_ON - ); - if (ret != -1) { - if (debug() >= 1) { - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Service installed.\n")); - } - this->save_registry_options(cmdline); - } else { - ACE_ERROR((LM_ERROR, "Error: Failed to install service.\n")); - } - if (ret == 0) - return 1; - } - else if (this->service_command_ == SC_REMOVE) - { - int ret = SERVICE::instance ()->remove (); - if (debug() >= 1) { - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Service removed.\n")); - } - if (ret == 0) - return 1; // If successfull, then we don't want to continue. - } - - return -1; - -#else /* ACE_WIN32 */ - ACE_UNUSED_ARG (cmdline); - ACE_ERROR ((LM_ERROR, "Service not supported on this platform")); - - return -1; -#endif /* ACE_WIN32 */ -} - -int -Options::save_registry_options(const ACE_CString& cmdline) +Options::save_registry_options() { #if defined (ACE_WIN32) HKEY key = 0; @@ -534,85 +184,28 @@ Options::save_registry_options(const ACE_CString& cmdline) if (err != ERROR_SUCCESS) { return -1; } - err = ACE_TEXT_RegSetValueEx(key, "ORBInitOptions", 0, REG_SZ, - (LPBYTE) cmdline.c_str(), cmdline.length() + 1); - ACE_ASSERT(err == ERROR_SUCCESS); - - err = ACE_TEXT_RegSetValueEx(key, "PersistFile", 0, REG_SZ, - (LPBYTE) file_name_.c_str(), file_name_.length() + 1); - ACE_ASSERT(err == ERROR_SUCCESS); - - err = ACE_TEXT_RegSetValueEx(key, "IORFile", 0, REG_SZ, - (LPBYTE) ior_output_file_.c_str(), ior_output_file_.length() + 1); - ACE_ASSERT(err == ERROR_SUCCESS); - - err = ACE_TEXT_RegSetValueEx(key, "DebugLevel", 0, REG_DWORD, - (LPBYTE) &debug_ , sizeof(debug_)); - ACE_ASSERT(err == ERROR_SUCCESS); - - DWORD tmp = ping_interval_.msec(); - err = ACE_TEXT_RegSetValueEx(key, "PingInterval", 0, REG_DWORD, - (LPBYTE) &tmp, sizeof(DWORD)); - ACE_ASSERT(err == ERROR_SUCCESS); - - tmp = readonly_ ? 1 : 0; - err = ACE_TEXT_RegSetValueEx(key, "Lock", 0, REG_DWORD, - (LPBYTE) &tmp, sizeof(DWORD)); + err = ACE_TEXT_RegSetValueEx(key, "ORBInitOptions", 0, REG_SZ, + (LPBYTE) this->cmdline_.c_str(), this->cmdline_.length() + 1); ACE_ASSERT(err == ERROR_SUCCESS); - tmp = repo_mode_; - err = ACE_TEXT_RegSetValueEx(key, "PersistType", 0, REG_DWORD, - (LPBYTE) &tmp, sizeof(DWORD)); + err = ACE_TEXT_RegSetValueEx(key, "IORFile", 0, REG_SZ, + (LPBYTE) this->ior_output_file_.c_str(), this->ior_output_file_.length() + 1); ACE_ASSERT(err == ERROR_SUCCESS); - tmp = startup_timeout_.sec(); - err = ACE_TEXT_RegSetValueEx(key, "Timeout", 0, REG_DWORD, - (LPBYTE) &tmp, sizeof(DWORD)); + err = ACE_TEXT_RegSetValueEx(key, "DebugLevel", 0, REG_DWORD, + (LPBYTE) &this->debug_ , sizeof(this->debug_)); ACE_ASSERT(err == ERROR_SUCCESS); err = ::RegCloseKey(key); ACE_ASSERT(err == ERROR_SUCCESS); -#else - ACE_UNUSED_ARG (cmdline); #endif return 0; } -namespace { - // This both parses the cmdline by replacing spaces with \0's, and - // adds each command to the ACE_ARGV. - void parse_command_line(char* cmdline, ACE_ARGV& argv) { - // This tokenizer will replace all spaces with end-of-string - // characters and will preserve text between "" and '' pairs. - ACE_Tokenizer parser (cmdline); - parser.delimiter_replace (' ', '\0'); - parser.preserve_designators ('\"', '\"'); - parser.preserve_designators ('\'', '\''); - - for (char *p = parser.next (); p; p = parser.next ()) { - argv.add(p); - } - } -} -/** - * We will only load from the registry if we are a service. - * We load each parameter from individual string keys, and then - * we have to parse the cmdline property into the orb_options - * so that they can be passed to ORB_init() - */ int -Options::load_registry_options (char*& cmdline, ACE_ARGV& argv) +Options::load_registry_options () { #if defined (ACE_WIN32) - if (! this->service()) - { - if (this->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, - "ActivatorOptions::load_registry_options: Not running as " - "a service, will not load data from registry\n")); - return 0; - } - HKEY key = 0; // Create or open the parameters key LONG err = ACE_TEXT_RegOpenKeyEx (SERVICE_REG_ROOT, @@ -625,214 +218,64 @@ Options::load_registry_options (char*& cmdline, ACE_ARGV& argv) // If there aren't any saved parameters, then that's ok. return 0; } - ACE_TCHAR tmpstr[4096]; + char tmpstr[4096]; DWORD sz = sizeof(tmpstr); DWORD type = 0; - err = ACE_TEXT_RegQueryValueEx(key, "ORBInitOptions", 0, &type, - (LPBYTE) tmpstr, &sz); - if (err == ERROR_SUCCESS) { - ACE_ASSERT(type == REG_SZ); - tmpstr[sz] = ACE_LIB_TEXT('\0'); - cmdline = new char[sz+1]; - ACE_OS::strcpy(cmdline, tmpstr); - parse_command_line(cmdline, argv); - } - - sz = sizeof(tmpstr); - err = ACE_TEXT_RegQueryValueEx(key, "PersistFile", 0, &type, + err = ACE_TEXT_RegQueryValueEx(key, "ORBInitOptions", 0, &type, (LPBYTE) tmpstr, &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_SZ); - tmpstr[sz] = ACE_LIB_TEXT('\0'); - this->file_name_ = ACE_CString(tmpstr); + tmpstr[sz - 1] = '\0'; + this->cmdline_ = tmpstr; } sz = sizeof(tmpstr); - err = ACE_TEXT_RegQueryValueEx(key, "IORFile", 0, &type, + err = ACE_TEXT_RegQueryValueEx(key, "IORFile", 0, &type, (LPBYTE) tmpstr, &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_SZ); - tmpstr[sz] = ACE_LIB_TEXT('\0'); - this->ior_output_file_ = ACE_CString(tmpstr); + tmpstr[sz - 1] = '\0'; + this->ior_output_file_ = tmpstr; } sz = sizeof(debug_); - err = ACE_TEXT_RegQueryValueEx(key, "DebugLevel", 0, &type, - (LPBYTE) &debug_ , &sz); + err = ACE_TEXT_RegQueryValueEx(key, "DebugLevel", 0, &type, + (LPBYTE) &this->debug_ , &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_DWORD); } - DWORD tmp = 0; - err = ACE_TEXT_RegQueryValueEx(key, "PingInterval", 0, &type, - (LPBYTE) &tmp, &sz); - if (err == ERROR_SUCCESS) { - ACE_ASSERT(type == REG_DWORD); - ping_interval_.msec(tmp); - } - - tmp = 0; - err = ACE_TEXT_RegQueryValueEx(key, "Lock", 0, &type, - (LPBYTE) &tmp, &sz); - if (err == ERROR_SUCCESS) { - ACE_ASSERT(type == REG_DWORD); - readonly_ = tmp != 0; - } - - err = ACE_TEXT_RegQueryValueEx(key, "PersistType", 0, &type, - (LPBYTE) &repo_mode_, &sz); - if (err == ERROR_SUCCESS) { - ACE_ASSERT(type == REG_DWORD); - } - - tmp = 0; - err = ACE_TEXT_RegQueryValueEx(key, "Timeout", 0, &type, - (LPBYTE) &tmp, &sz); - if (err == ERROR_SUCCESS) { - ACE_ASSERT(type == REG_DWORD); - startup_timeout_.sec(tmp); - } - err = ::RegCloseKey(key); ACE_ASSERT(err == ERROR_SUCCESS); - - return 0; -#else /* ACE_WIN32 */ - ACE_UNUSED_ARG (cmdline); - ACE_UNUSED_ARG (argv); - return 0; #endif /* ACE_WIN32 */ + return 0; } -/** - * Standalone Mode - * - * @retval 0 Run as standalone service - * @retval 1 Run as a service (only on NT right now) - */ bool Options::service (void) const { return this->service_; } - -/** - * Debug level for the IR. - * - * @retval 0 Quiet - * @retval 1 Trace messages - * @retval 2 Detailed messages - */ unsigned int Options::debug (void) const { return this->debug_; } - -/** - * @return The file where the IOR will be stored. - */ -ACE_CString -Options::output_filename (void) const +const ACE_CString& +Options::ior_filename (void) const { return this->ior_output_file_; } - -/** - * @return The amount of time to wait for a server to start. - */ -ACE_Time_Value -Options::startup_timeout (void) const +Options::SERVICE_COMMAND +Options::service_command(void) const { - return this->startup_timeout_; + return this->service_command_; } - -/** - * @return The amount of time to wait between pings - */ -ACE_Time_Value -Options::ping_interval (void) const -{ - return this->ping_interval_; +const ACE_CString& +Options::cmdline(void) const { + return this->cmdline_; } - -/** - * @return The ACE_Configuration object that is used to store data. - */ -Repository_Configuration * -Options::config (void) const -{ - return this->repo_config_.get(); -} - -int -Options::repository_mode (void) -{ - return this->repo_mode_; -} - -ACE_CString -Options::file_name (void) const -{ - return this->file_name_; -} - -const char * -Options::convert_str (ImplementationRepository::ActivationMode mode) -{ - switch (mode) - { - case ImplementationRepository::NORMAL: - return "NORMAL"; - case ImplementationRepository::MANUAL: - return "MANUAL"; - case ImplementationRepository::PER_CLIENT: - return "PER_CLIENT"; - case ImplementationRepository::AUTO_START: - return "AUTO_START"; - default: - return "UNKNOWN"; - }; -} - -ImplementationRepository::ActivationMode -Options::convert_mode (const char * mode) -{ - if (ACE_OS::strcmp (mode, "NORMAL") == 0) - return ImplementationRepository::NORMAL; - else if (ACE_OS::strcmp (mode, "MANUAL") == 0) - return ImplementationRepository::MANUAL; - else if (ACE_OS::strcmp (mode, "PER_CLIENT") == 0) - return ImplementationRepository::PER_CLIENT; - else //if (ACE_OS::strcmp (mode, "AUTO_START") == 0) - return ImplementationRepository::AUTO_START; -} - -/** - * @return A pointer to the ORB. - */ -CORBA::ORB_ptr -Options::orb (void) const -{ - return CORBA::ORB::_duplicate (this->orb_.in ()); -} - -/** - * @retval 0 Normal operation. - * @retval 1 Do not let server info be modified. - */ -bool -Options::readonly (void) const -{ - return this->readonly_; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Singleton <Options, ACE_Null_Mutex>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Singleton <Options, ACE_Null_Mutex> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h index e9e7cc15466..7ae6ef97d30 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h @@ -15,47 +15,37 @@ #ifndef ACTIVATOR_OPTIONS_H #define ACTIVATOR_OPTIONS_H -#include "Repository_Configuration.h" +#include "activator_export.h" -#include "tao/ORB.h" -#include "tao/PortableServer/ImplRepoC.h" - -#include "ace/Singleton.h" #include "ace/SString.h" -#include "ace/Auto_Ptr.h" -// Forward declarations -class ACE_ARGV; +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ /** * @class Options * - * @brief Maintains the global options. - * - * This is where all the settings for TAO's Implementation Repository is + * This is where all the settings for TAO's Implementation Repository are * stored. */ -class Options +class Activator_Export Options { public: - enum REPO_MODE { - REPO_NONE, - REPO_XML_FILE, - REPO_HEAP_FILE, - REPO_REGISTRY - }; - + enum SERVICE_COMMAND { SC_NONE, SC_INSTALL, - SC_REMOVE + SC_REMOVE, + SC_INSTALL_NO_LOCATOR }; - /// Default Constructor Options (); /// Parse the command-line arguments and initialize the options. int init (int argc, char *argv[]); + /// This version should only be used when run as an nt service. + int init_from_registry(); /// Service Mode bool service (void) const; @@ -64,36 +54,15 @@ public: unsigned int debug (void) const; /// Returns the file where the IOR should be stored. - ACE_CString output_filename (void) const; - - /// Returns the configuration object. - Repository_Configuration* config (void) const; - - int repository_mode (void); - - /// Returns the file name. - ACE_CString file_name (void) const; + const ACE_CString& ior_filename (void) const; - /// Converts the activation mode to a const char *. Needed to put - /// the activation mode into the XML file or print it out. - const char *convert_str (ImplementationRepository::ActivationMode mode); + /// The nt service command to run (install/remove) + SERVICE_COMMAND service_command(void) const; - ImplementationRepository::ActivationMode convert_mode (const char *mode); + /// Save the command line arguments as registry settings. (Windows only) + int save_registry_options (); - /// Returns the timeout value for program starting. - ACE_Time_Value startup_timeout (void) const; - - /// Returns the timeout value for program starting. - ACE_Time_Value ping_interval (void) const; - - /// Returns a pointer to the ORB. - CORBA::ORB_ptr orb (void) const; - - /// Will we listen for multicast location requests? - bool multicast (void) const; - - /// Do we allow modifications to the servers? - bool readonly (void) const; + const ACE_CString& cmdline(void) const; private: /// Parses and pulls out arguments for the ImR @@ -102,36 +71,13 @@ private: /// Print the usage information. void print_usage (void) const; - /// Wrapper for the other initialize_persistence() methods - int initialize_persistence(void); - - /// Initialize heap file persistence. - int initialize_heap_persistence (void); - - /// Initialize Registry persistence. - int initialize_registry_persistence (void); + /// Loads options from the registry + int load_registry_options (); - /// Initialize default heap for no persistence. - int initialize_non_persistence (void); - - /// Initialize XML file persistence - int initialize_xml_persistence (void); - - /// Run a service command. - int run_service_command (const ACE_CString& cmdline); - - /// Loads ORB options from the registry - int load_registry_options (char*& cmdline, ACE_ARGV& argv); - int save_registry_options (const ACE_CString& cmdline); - - /// The persistent configuration object. - auto_ptr<Repository_Configuration> repo_config_; - - /// Mode of the Server Repository: if XML (x) or non-XML (n) - int repo_mode_; +private: - /// The persistent file option. - ACE_CString file_name_; + /// Our extra command line arguments + ACE_CString cmdline_; /// Debug level. unsigned int debug_; @@ -139,28 +85,11 @@ private: /// File where the IOR of the server object is stored. ACE_CString ior_output_file_; - /// Will we listen for multicast location requests? - bool multicast_; - - /// The ORB for the Implementation Repository. - CORBA::ORB_var orb_; - - /// The amount of time between successive "are you started yet?" pings. - ACE_Time_Value ping_interval_; - - /// Are we running as a service? + /// Should we run as a service? bool service_; - /// The amount of time to wait for a server to response after starting it. - ACE_Time_Value startup_timeout_; - - /// Can the server_repository be modified? - bool readonly_; - /// SC_NONE, SC_INSTALL, SC_REMOVE, ... - int service_command_; + SERVICE_COMMAND service_command_; }; -typedef ACE_Singleton <Options, ACE_Null_Mutex> OPTIONS; - #endif diff --git a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp index b076bc5ae61..04cf4f5e647 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp @@ -13,20 +13,25 @@ #include "ace/Log_Msg.h" -ImR_Adapter_Activator::ImR_Adapter_Activator ( - PortableServer::ServantLocator_ptr servant -) - : servant_locator_ (servant) +ImR_Adapter::ImR_Adapter(void) +: servant_locator_(0) { - // Nothing +} + +void +ImR_Adapter::init(PortableServer::ServantLocator_ptr servant) +{ + servant_locator_ = servant; } CORBA::Boolean -ImR_Adapter_Activator::unknown_adapter (PortableServer::POA_ptr parent, +ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent, const char *name - ACE_ENV_ARG_DECL) + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { + ACE_ASSERT(! CORBA::is_nil(parent)); + ACE_ASSERT(name != 0); CORBA::PolicyList policies (2); policies.length (2); @@ -37,8 +42,7 @@ ImR_Adapter_Activator::unknown_adapter (PortableServer::POA_ptr parent, // Servant Retention Policy exception_message = "While PortableServer::POA::create_servant_retention_policy"; policies[0] = - parent->create_servant_retention_policy (PortableServer::NON_RETAIN - ACE_ENV_ARG_PARAMETER); + parent->create_servant_retention_policy (PortableServer::NON_RETAIN ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; // Request Processing Policy @@ -77,8 +81,8 @@ ImR_Adapter_Activator::unknown_adapter (PortableServer::POA_ptr parent, } ACE_CATCHANY { - ACE_ERROR ((LM_ERROR, - "IMR_Adapter_Activator::unknown_adapter - %s\n", + ACE_ERROR ((LM_ERROR, + "IMR_Adapter_Activator::unknown_adapter - %s\n", exception_message)); ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "System Exception"); return 0; diff --git a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h index 62757907e07..f629595b5c3 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h +++ b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h @@ -16,6 +16,10 @@ #include "tao/PortableServer/PortableServerC.h" +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + /** * @class ImR_Adapter_Activator * @@ -26,11 +30,10 @@ * the POA structure that the request expects. For each POA created, the * same ServantLocator will be registered in each one. */ -class ImR_Adapter_Activator : public PortableServer::AdapterActivator +class ImR_Adapter : public PortableServer::AdapterActivator { public: - /// Constructor - ImR_Adapter_Activator (PortableServer::ServantLocator_ptr servant); + ImR_Adapter(); /// Called when a POA needs to be created. virtual CORBA::Boolean unknown_adapter ( @@ -40,6 +43,7 @@ public: ) ACE_THROW_SPEC ((CORBA::SystemException)); + void init(PortableServer::ServantLocator_ptr servant); private: /// The ServantLocator registered in each new POA. PortableServer::ServantLocator_ptr servant_locator_; diff --git a/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp b/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp index 709239a31ce..7d76367c4de 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp @@ -1,14 +1,14 @@ //============================================================================= /** - * @file Forwarder.cpp - * - * $Id$ - * - * @brief Definition of ImR_Forwarder - * - * @author Darrell Brunsch <brunsch@cs.wustl.edu> - * @author Priyanka Gontla <pgontla@doc.ece.uci.edu> - */ +* @file Forwarder.cpp +* +* $Id$ +* +* @brief Definition of ImR_Forwarder +* +* @author Darrell Brunsch <brunsch@cs.wustl.edu> +* @author Priyanka Gontla <pgontla@doc.ece.uci.edu> +*/ //============================================================================= #include "Forwarder.h" @@ -21,47 +21,47 @@ #include "tao/PortableServer/Object_Adapter.h" /** - * This constructor takes in orb and ImR_Locator_i pointers to store for later - * use. It also grabs a reference to the POACurrent object for use in - * preinvoke. - */ -ImR_Forwarder::ImR_Forwarder (ImR_Locator_i *imr_impl, CORBA::ORB_ptr orb) - : imr_impl_ (imr_impl), - orb_ (orb) +* This constructor takes in orb and ImR_Locator_i pointers to store for later +* use. It also grabs a reference to the POACurrent object for use in +* preinvoke. +*/ +ImR_Forwarder::ImR_Forwarder (ImR_Locator_i& imr_impl) + : locator_ (imr_impl) { - ACE_ASSERT (imr_impl != 0); +} +void +ImR_Forwarder::init(CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) +{ + ACE_ASSERT(! CORBA::is_nil(orb)); + this->orb_ = orb; ACE_TRY_NEW_ENV - { - CORBA::Object_var tmp = - orb->resolve_initial_references ("POACurrent" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->poa_current_var_ = - PortableServer::Current::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } + { + CORBA::Object_var tmp = + orb->resolve_initial_references ("POACurrent" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->poa_current_var_ = + PortableServer::Current::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } ACE_CATCHANY - { - // Ignore - } + { + ACE_DEBUG((LM_DEBUG, "ImR_Forwarder::init() Exception ignored.\n")); + } ACE_ENDTRY; - + ACE_CHECK; ACE_ASSERT (!CORBA::is_nil (this->poa_current_var_.in ())); } - /** - * We figure out the intended recipient from the POA name. After activating - * the server, we throw a forwarding exception to the correct server. - * - * The big complicated thing here is that we have to create the forwarding - * ior based on what we already have. So we combine the endpoint received - * from activate_server_i and append the objectid from the request to it. - * - * @todo Should we base the name on the entire POA hierarchy? - * @todo Use ACE_TString for the IOR? Can it always be a char? - */ +* We figure out the intended recipient from the POA name. After activating +* the server, we throw a forwarding exception to the correct server. +* +* The big complicated thing here is that we have to create the forwarding +* ior based on what we already have. So we combine the endpoint received +* from activate_server_i and append the objectid from the request to it. +*/ PortableServer::Servant ImR_Forwarder::preinvoke (const PortableServer::ObjectId &, PortableServer::POA_ptr poa, @@ -70,53 +70,64 @@ ImR_Forwarder::preinvoke (const PortableServer::ObjectId &, ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, PortableServer::ForwardRequest)) { - ACE_TString ior; + ACE_ASSERT(! CORBA::is_nil(poa)); CORBA::Object_var forward_obj; ACE_TRY + { + CORBA::String_var server_name = poa->the_name(); + + // The activator stores a partial ior with each server. We can + // just tack on the current ObjectKey to get a valid ior for + // the desired server. + CORBA::String_var pior = locator_.activate_server_by_name(server_name.in(), false ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_CString ior = pior.in(); + + // Check that the returned ior is the expected partial ior with + // missing ObjectKey. + if (ior.find("corbaloc:") != 0 || ior[ior.length() - 1] != '/') { - CORBA::String_var poa_name = poa->the_name(); - - // The activator stores a partial ior with each server. We can - // just tack on the current ObjectKey to get a valid ior for - // the desired server. - ior = this->imr_impl_->activate_server_with_startup (poa_name.in (), 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // Check that the returned ior is the expected partial ior with - // missing ObjectKey. - ACE_ASSERT(ACE_OS::strncmp(ior.c_str(), "corbaloc:", 9) == 0); - ACE_ASSERT(ior[ior.length() - 1] == '/'); - - CORBA::String_var key_str; - - // Unlike POA Current, this implementation cannot be cached. - TAO_POA_Current *tao_current = - ACE_dynamic_cast (TAO_POA_Current*, this->poa_current_var_.in ()); - TAO_POA_Current_Impl *impl = tao_current->implementation (); - TAO::ObjectKey::encode_sequence_to_string (key_str.out(), impl->object_key ()); - - // Append the key_string to the IOR that is received from the - // activate_server_with_startup function call. - ior += key_str.in(); - - // Get the object corresponding to the string. - forward_obj = - this->orb_->string_to_object (ior.c_str () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::SystemException, sysex) - { - ACE_PRINT_EXCEPTION (sysex, "Forwarder system exception"); - ACE_RE_THROW; + ACE_ERROR((LM_ERROR, "ImR_Forwarder::preinvoke() Invalid corbaloc ior.\n\t<%s>\n", ior.c_str())); + ACE_TRY_THROW (CORBA::OBJECT_NOT_EXIST ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); } + + CORBA::String_var key_str; + // Unlike POA Current, this implementation cannot be cached. + TAO_POA_Current* tao_current = + ACE_dynamic_cast (TAO_POA_Current*, this->poa_current_var_.in ()); + ACE_ASSERT(tao_current != 0); + TAO_POA_Current_Impl* impl = tao_current->implementation (); + TAO::ObjectKey::encode_sequence_to_string (key_str.out(), impl->object_key ()); + + ior += key_str.in(); + + forward_obj = + this->orb_->string_to_object (ior.c_str () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + ACE_CATCH (ImplementationRepository::CannotActivate, ex) + { + ACE_TRY_THROW (CORBA::TRANSIENT ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); + } + ACE_CATCH (ImplementationRepository::NotFound, ex) + { + ACE_TRY_THROW (CORBA::TRANSIENT ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); + } ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Forwarder exception"); - ACE_TRY_THROW (CORBA::TRANSIENT ( - CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), - CORBA::COMPLETED_NO)); - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Forwarder"); + ACE_TRY_THROW (CORBA::TRANSIENT ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); + } ACE_ENDTRY; ACE_CHECK_RETURN (0); @@ -124,20 +135,20 @@ ImR_Forwarder::preinvoke (const PortableServer::ObjectId &, ACE_THROW_RETURN (PortableServer::ForwardRequest (forward_obj.in ()), 0); ACE_ERROR ((LM_ERROR, "Error: Forward_to reference is nil.\n")); - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), 0); + ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO), 0); } -/** - * The postinvoke method just deletes the passed in servant. - */ void -ImR_Forwarder::postinvoke (const PortableServer::ObjectId &, - PortableServer::POA_ptr , - const char * , - PortableServer::ServantLocator::Cookie , - PortableServer::Servant servant - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) +ImR_Forwarder::postinvoke ( + const PortableServer::ObjectId &, + PortableServer::POA_ptr, + const char *, + PortableServer::ServantLocator::Cookie, + PortableServer::Servant + ACE_ENV_ARG_DECL_NOT_USED + ) ACE_THROW_SPEC ((CORBA::SystemException)) { - delete servant; } + diff --git a/TAO/orbsvcs/ImplRepo_Service/Forwarder.h b/TAO/orbsvcs/ImplRepo_Service/Forwarder.h index fe0828939ad..2236f1cf7ff 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Forwarder.h +++ b/TAO/orbsvcs/ImplRepo_Service/Forwarder.h @@ -17,6 +17,10 @@ #include "tao/PortableServer/PortableServerC.h" +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + class ImR_Locator_i; /** @@ -31,7 +35,7 @@ class ImR_Locator_i; class ImR_Forwarder: public PortableServer::ServantLocator { public: - ImR_Forwarder (ImR_Locator_i *ir_impl, CORBA::ORB_ptr orb); + ImR_Forwarder (ImR_Locator_i& imr_impl); /// Called before the invocation begins. virtual PortableServer::Servant preinvoke ( @@ -42,18 +46,20 @@ public: ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::SystemException, PortableServer::ForwardRequest)); - /// Called after the invocation finishes. - virtual void postinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - const char * operation, - PortableServer::ServantLocator::Cookie cookie, - PortableServer::Servant servant - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void postinvoke ( + const PortableServer::ObjectId & oid, + PortableServer::POA_ptr adapter, + const char * operation, + PortableServer::ServantLocator::Cookie the_cookie, + PortableServer::Servant the_servant + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) ACE_THROW_SPEC ((CORBA::SystemException)); + + void init(CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); private: /// Where we find out where to forward to. - ImR_Locator_i *imr_impl_; + ImR_Locator_i& locator_; /// POA reference. PortableServer::Current_var poa_current_var_; diff --git a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp index 7dff48ece99..3713ed1449a 100644 --- a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp @@ -1,26 +1,50 @@ //============================================================================= /** - * @file INS_Locator.cpp - * - * $Id$ - * - * @brief Implementation of the ImR's INS Locator class - * - * @author Darrell Brunsch <brunsch@cs.wustl.edu> - */ +* @file INS_Locator.cpp +* +* $Id$ +* +* @brief Implementation of the ImR's INS Locator class +* +* @author Darrell Brunsch <brunsch@cs.wustl.edu> +*/ //============================================================================= #include "INS_Locator.h" #include "ImR_Locator_i.h" -INS_Locator::INS_Locator (ImR_Locator_i* loc) - : imr_locator_ (loc) +INS_Locator::INS_Locator (ImR_Locator_i& loc) +: imr_locator_ (loc) { } char * INS_Locator::locate (const char* object_key ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, IORTable::NotFound)) +ACE_THROW_SPEC ((CORBA::SystemException, IORTable::NotFound)) { - return this->imr_locator_->find_ior (object_key ACE_ENV_ARG_PARAMETER); + ACE_ASSERT(object_key != 0); + ACE_TRY + { + CORBA::String_var located = + this->imr_locator_.activate_server_by_object(object_key ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_CString tmp = located.in(); + tmp += object_key; + return CORBA::string_dup(tmp.c_str()); + } + ACE_CATCH(ImplementationRepository::CannotActivate, ex) + { + ACE_TRY_THROW (CORBA::TRANSIENT ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); + } + ACE_CATCH(ImplementationRepository::NotFound, ex) + { + ACE_TRY_THROW (CORBA::TRANSIENT ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); + } + ACE_ENDTRY; + return 0; } diff --git a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h index 26071a51348..0536aac2fb0 100644 --- a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h +++ b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h @@ -16,7 +16,10 @@ #include /**/ "ace/pre.h" #include "tao/IORTable/IORTable.h" -#include "tao/LocalObject.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ class ImR_Locator_i; @@ -28,22 +31,18 @@ class ImR_Locator_i; * This class provides a callback for the IORTable to call when it needs * to dynamically receive a IOR to forward in response to an INS request. */ -class INS_Locator : public virtual IORTable::Locator, - public virtual TAO_Local_RefCounted_Object +class INS_Locator : public virtual IORTable::Locator { public: - /// Constructor - INS_Locator (ImR_Locator_i* loc); + INS_Locator (ImR_Locator_i& loc); /// Locate the appropriate IOR. - char * locate (const char *object_key ACE_ENV_ARG_DECL) + char* locate (const char *object_key ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, IORTable::NotFound)); private: - - ImR_Locator_i* imr_locator_; - + ImR_Locator_i& imr_locator_; }; #include /**/ "ace/post.h" -#endif +#endif diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp index 39effb860f4..d0282d28cae 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.cpp @@ -6,15 +6,14 @@ #include "Activator_NT_Service.h" int -run_standalone (void) +run_standalone (Options& opts) { ImR_Activator_i server; ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { - // Initialize the ImR_Activator_i server. - int status = server.init (ACE_ENV_SINGLE_ARG_PARAMETER); + int status = server.init (opts ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; if (status == -1) @@ -27,8 +26,9 @@ run_standalone (void) server.run (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; - // We should only get here if the shutdown_repo operation has - // been called. That operation saves the Activator's state. + // End the server after its work is done. + status = server.fini (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; if (status == -1) return 1; @@ -60,11 +60,7 @@ int run_service (void) { #if defined (ACE_WIN32) - // @todo: Update me - - // If we get here, we either run the app in debug mode (-d) or are - // being called from the service manager to start the service. - + SERVICE::instance()->name (IMR_ACTIVATOR_SERVICE_NAME, IMR_ACTIVATOR_DISPLAY_NAME); ACE_NT_SERVICE_RUN (service, SERVICE::instance (), ret); if (ret == 0) @@ -76,28 +72,106 @@ run_service (void) #endif /* ACE_WIN32 */ } +/** + * Executes the various commands that are useful for a NT service. Right + * now these include 'install' and 'remove'. Others, such as 'start' and + * 'stop' can be added, but the 'net' program in Windows already handles + * these commands. + */ +static int +run_service_command (Options& opts) +{ + if (opts.service_command() == Options::SC_NONE) + return 0; + +#if defined (ACE_WIN32) + SERVICE::instance()->name (IMR_ACTIVATOR_SERVICE_NAME, IMR_ACTIVATOR_DISPLAY_NAME); + + if (opts.service_command() == Options::SC_INSTALL || + opts.service_command() == Options::SC_INSTALL_NO_LOCATOR) + { + const DWORD MAX_PATH_LENGTH = 4096; + char pathname[MAX_PATH_LENGTH]; + + DWORD length = ACE_TEXT_GetModuleFileName(NULL, pathname, MAX_PATH_LENGTH); + if (length == 0 || length >= MAX_PATH_LENGTH - sizeof(" -s")) + { + ACE_ERROR ((LM_ERROR, "Error: Could not get module file name\n")); + return -1; + } + + // Append the command used for running the implrepo as a service + ACE_OS::strcat (pathname, ACE_TEXT (" -s")); + int ret = -1; + if (opts.service_command() == Options::SC_INSTALL) + { + const char* DEPENDS_ON = "TAOIMRLocator"; // Must match Locator_NT_Service.h + + ret = SERVICE::instance ()->insert (SERVICE_DEMAND_START, + SERVICE_ERROR_NORMAL, + pathname, + 0, // group + 0, // tag + DEPENDS_ON + ); + } + else + { + ret = SERVICE::instance ()->insert (SERVICE_DEMAND_START, + SERVICE_ERROR_NORMAL, + pathname); + } + if (ret != -1) { + ACE_DEBUG ((LM_DEBUG, "ImR Activator: Service installed.\n")); + opts.save_registry_options(); + } else { + ACE_ERROR((LM_ERROR, "Error: Failed to install service.\n")); + } + if (ret == 0) + return 1; + } + else if (opts.service_command() == Options::SC_REMOVE) + { + int ret = SERVICE::instance ()->remove (); + ACE_DEBUG ((LM_DEBUG, "ImR Activator: Service removed.\n")); + if (ret == 0) + return 1; // If successfull, then we don't want to continue. + } + else + { + ACE_ERROR ((LM_ERROR, "Error: Unknown service command :%d \n", + opts.service_command())); + return -1; + } + + return -1; + +#else /* ACE_WIN32 */ + ACE_ERROR ((LM_ERROR, "NT Service not supported on this platform")); + return -1; +#endif /* ACE_WIN32 */ +} + int main (int argc, char *argv[]) { - int result = OPTIONS::instance ()->init (argc, argv); + Options opts; + int result = opts.init (argc, argv); if (result < 0) - return 1; // Error parsing args + return 1; // Error else if (result > 0) return 0; // No error, but we should exit anyway. - if (OPTIONS::instance()->service()) - return run_service (); - - return run_standalone (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + result = run_service_command(opts); + if (result < 0) + return 1; // Error + else if (result > 0) + return 0; // No error, but we should exit anyway. -#elif defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION) + if (opts.service()) + return run_service(); -template ACE_Singleton<Options, ACE_Null_Mutex> *ACE_Singleton<Options, ACE_Null_Mutex>::singleton_; + return run_standalone (opts); +} -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl new file mode 100644 index 00000000000..0dbc830984b --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator.idl @@ -0,0 +1,30 @@ +// -*- IDL -*- + +// $Id$ + +#include "tao/PortableServer/ImplRepo.idl" + +module ImplementationRepository +{ + interface Activator + { + // Tells the activator to launch the specified server using the given + // startup information. If the activator is already in the process of + // launching the server, then the StartupOptions are ignored and the + // call just waits for the server to start. Before, this call returns + // to the locator, the activator can verify that the server is indeed + // started by calling ServerObject::ping(). (Option) + // If the server is already running, then this will just verify that it + // is started by pinging it. (if enabled) Also, the ping() will only be + // called if it's been at least X ms since the last ping. + void start_server(in string name, in string cmdline, in string dir, in EnvironmentList env) raises(CannotActivate); + + // The Locator will call the activator if it receives notification that + // the server is running. This will allow the activator to return from + // start_server, for any calls that may have been blocked waiting for this. + // This will also be called if the server is shutdown, or if the locator + // receives notice that the server is stopping. + void server_status_changed(in string name); + }; +}; + diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp index f48de6daf17..568c06d6216 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp @@ -2,1338 +2,388 @@ #include "ImR_Activator_i.h" -#include "INS_Locator.h" -#include "Iterator.h" #include "Activator_Options.h" -#include "tao/PortableServer/Default_Acceptor_Filter.h" -#include "tao/PortableServer/ImR_LocatorC.h" - -#include "tao/Acceptor_Registry.h" -#include "tao/Thread_Lane_Resources.h" #include "tao/ORB_Core.h" -#include "tao/MProfile.h" -#include "tao/Profile.h" -#include "tao/default_ports.h" - -#include "ace/Auto_Ptr.h" -#include "ace/OS_NS_netdb.h" -#include "ace/OS_NS_sys_time.h" -#include "ace/OS_NS_unistd.h" -ACE_RCSID (ImplRepo_Service, - ImR_Activator_i, - "$Id$") +#include "ace/ARGV.h" +#include "ace/OS.h" -ImR_Activator_i::ImR_Activator_i (void) - : registration_token_(0) +static ACE_CString getActivatorName() { - char host_name[MAXHOSTNAMELEN + 1]; + char host_name[MAXHOSTNAMELEN]; ACE_OS::hostname (host_name, MAXHOSTNAMELEN); - name_ = host_name; -} - -char * -ImR_Activator_i::find_ior (const char* oname ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) -{ - // We assume that the first part of the object name is the poa name. - // So we would think that a name of foo/bar means that the POA name - // is foo. - ACE_CString object_name(oname); - ssize_t pos = object_name.find ('/'); - - if (pos == ACE_CString::npos) - pos = ACE_static_cast (ssize_t, object_name.length ()); - - ACE_CString poa_name; - poa_name.set (object_name.fast_rep (), pos, 1); - - ACE_CString endpoint; - ACE_TRY - { - // Activate the server and return the object reference. - endpoint = this->activate_server_with_startup (poa_name.c_str (), 1 - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_THROW_RETURN (ImplementationRepository::NotFound (), 0); - } - ACE_ENDTRY; - ACE_CHECK_RETURN (0); - - // Have to do this so it is null terminated - ACE_CString object_name2 (object_name.fast_rep (), - object_name.length ()); - - ACE_CString ior = endpoint; - ior += object_name2; - - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Found IOR" - " for %s is %s\n", oname, endpoint.c_str())); - - return CORBA::string_dup (ior.c_str ()); -} - - -// Starts the server defined by the POA name <server> if it is -// not already started and if it can be started. -void -ImR_Activator_i::activate_server (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) -{ - // Since this is called through the Admin interface, we should ignore some - // of the activation modes. Also ignore the return value. - this->activate_server_i (server, 0 ACE_ENV_ARG_PARAMETER); - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Activate server %s.\n", server)); + return ACE_CString(host_name); } -char * -ImR_Activator_i::activate_server_with_startup (const char *server, - int check_startup - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) +ImR_Activator_i::ImR_Activator_i (void) +: registration_token_(0) +, debug_(0) +, name_(getActivatorName()) { - if (OPTIONS::instance()->debug () >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Activate server" - " %s. Check startup=%d.\n", server, check_startup)); - } - return this->activate_server_i (server, check_startup ACE_ENV_ARG_PARAMETER); } -// Activates the server and returns the IOR of the object that is -// activated. -char * -ImR_Activator_i::activate_server_i(const char *server, - int check_startup - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) +int +ImR_Activator_i::init_with_orb(CORBA::ORB_ptr orb, const Options& opts ACE_ENV_ARG_DECL) { - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - - int start = 0; - ACE_CString server_object_ior, partial_ior; - - ACE_CString logical, startup, working; - ImplementationRepository::EnvironmentList environment; - ImplementationRepository::ActivationMode activation; - - // Get the startup information for the server in question. - if (this->repository_.get_startup_info (server, - logical, - startup, - environment, - working, - activation) != 0) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find startup info for server <%s>\n", - server)); - ACE_THROW_RETURN(ImplementationRepository::NotFound (), 0); - } - - // Find out if it is already running - if (this->repository_.get_running_info (server, - partial_ior, - server_object_ior) != 0) - { - // If we had problems getting the server_object_ior, probably meant that - // there is no <server> registered - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find ServerObject IOR for server <%s>\n", - server)); - ACE_THROW_RETURN (ImplementationRepository::NotFound (), 0); - } - - // Check to see if there is one running (if there is a server_object_ior) - if (server_object_ior.length () != 0) - { - // It is running - ACE_TRY - { - CORBA::Object_var object = - orb->string_to_object (server_object_ior.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ImplementationRepository::ServerObject_var server_object = - ImplementationRepository::ServerObject::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (CORBA::is_nil (server_object.in ())) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Invalid ServerObject IOR: <%s>\n", - server_object_ior.c_str ())); - ACE_THROW_RETURN (ImplementationRepository::NotFound (), 0); - } - - // Check to see if we can ping it - server_object->ping (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // If we got an exception, then we have to restart it. - start = 1; - } - ACE_ENDTRY; - } - else - { - start = 1; - } + ACE_ASSERT(! CORBA::is_nil(orb)); + orb_ = CORBA::ORB::_duplicate(orb); + debug_ = opts.debug(); - if (start == 1) - { - // Make sure the activation allows us to start it up. - if (activation == ImplementationRepository::MANUAL && check_startup) - ACE_THROW_RETURN (CORBA::TRANSIENT ( - CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, - 0), - CORBA::COMPLETED_NO), - 0); - - this->start_server_i (server); - ACE_CHECK_RETURN (0); - } - - // Get the latest information about where the server is running and - // it's IOR - if (this->repository_.get_running_info (server, - partial_ior, - server_object_ior) != 0) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Can not resolve server <%s>\n", - server)); - } - - if (activation == ImplementationRepository::PER_CLIENT && check_startup) + ACE_TRY { - if (this->repository_.update (server, "", "") != 0) + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Contacting ImplRepoService...\n")); + + // First, resolve the ImR Locator, without this we can go no further + CORBA::Object_var obj = + orb_->resolve_initial_references ("ImplRepoService" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + if (CORBA::is_nil(obj.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to resolve_initial_references(\"ImplRepoService\")\n"), -1); + } + locator_ = ImplementationRepository::Locator::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(locator_.in())); + + // Create a new poa and poa manager + obj = orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(obj.in())); + this->root_poa_ = PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(this->root_poa_.in())); + + // Note : There is no point in making the activator use a persistent POA, because + // it will always re-register with the ImR on startup anyway. + CORBA::PolicyList policies; + this->imr_poa_ = this->root_poa_->create_POA("ImR_Activator", + PortableServer::POAManager::_nil(), policies ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(this->imr_poa_.in())); + + // Activate ourself + PortableServer::ObjectId_var id = + this->imr_poa_->activate_object(this ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + obj = this->imr_poa_->id_to_reference (id.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ImplementationRepository::Activator_var activator = + ImplementationRepository::Activator::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(activator.in())); + + CORBA::String_var ior = this->orb_->object_to_string(activator.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Starting %s\n", name_.c_str())); + + // initialize our process manager. + // This requires a reactor that has signal handling. + ACE_Reactor *reactor = ACE_Reactor::instance (); + if (reactor != 0) + { + if (this->process_mgr_.open (ACE_Process_Manager::DEFAULT_SIZE, reactor) == -1) { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Could not update information for server <%s>\n", - server)); - ACE_THROW_RETURN (ImplementationRepository::NotFound (), 0); + ACE_ERROR_RETURN ((LM_ERROR, + "The ACE_Process_Manager didnt get initialized\n"), -1); } - } - - return CORBA::string_dup (partial_ior.c_str ()); -} - - -// Starts the server process -void -ImR_Activator_i::start_server_i (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) -{ - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - - int spawned_pid = 0; - ACE_CString logical, startup, working; - ImplementationRepository::EnvironmentList environment; - ImplementationRepository::ActivationMode activation; - - // Get the server startup information. - if (this->repository_.get_startup_info (server, - logical, - startup, - environment, - working, - activation) != 0) - { - // In case of failure, print it out. - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find startup info for server <%s>\n", - server)); - - // And, throw the exception. - ACE_THROW (ImplementationRepository::NotFound ()); - ACE_CHECK; - } - - // Check to see if it is already starting up - int startup_val = this->repository_.starting_up (server, 1); - - if (startup_val == -1) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find startup info for server <%s>\n", - server)); - - ACE_THROW (ImplementationRepository::NotFound ()); - ACE_CHECK; - } - - // startup_val will be zero only if the server is running. - if (startup_val == 0) - { - if (startup.length () == 0) - { - // If there is no startup information, throw an exception - ACE_ERROR ((LM_ERROR, - "ImR Activator: No startup information for server <%s>\n", - server)); - ACE_THROW (ImplementationRepository::CannotActivate - (CORBA::string_dup ("No startup information"))); - ACE_CHECK; - } - - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Starting server %s\n", server)); - - // Set the Process parameters. - ACE_Process_Options proc_opts; - - proc_opts.command_line (startup.c_str ()); - proc_opts.working_directory (working.c_str ()); - proc_opts.handle_inheritence (0); - - // Win32 does not support the CLOSE_ON_EXEC semantics for sockets - // the way unix does, so in order to avoid having the child process - // hold the listen socket open, we force the child to inherit no - // handles. This includes stdin, stdout, logs, etc. - - for (CORBA::ULong i = 0; i < environment.length(); ++i) - proc_opts.setenv (environment[i].name.in (), environment[i].value.in ()); - - // Spawn the proces. - spawned_pid = this->process_mgr_.spawn (proc_opts); - - if (spawned_pid == ACE_INVALID_PID) - { - // If invalid PID.. - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot activate server <%s> using <%s>\n", - server, - startup.c_str ())); - - // and throw the exception - ACE_THROW (ImplementationRepository::CannotActivate - (CORBA::string_dup ("Process Creation Failed"))); - ACE_CHECK; - } - else if (OPTIONS::instance ()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::start_server_i: Process ID is %d\n", spawned_pid)); - } - - // Now that the server has been started up, we need to go back into the event - // loop so we can get the reponse or handle other requests - TAO_ORB_Core *orb_core = orb->orb_core (); - - int starting_up; - - ACE_Time_Value timeout = OPTIONS::instance ()->startup_timeout (); - - // We will wait till the timeout period for the server to get - // started up. The starting_up value will be made zero when the - // server is up and running. And, thats the condition that we are - // checking. - while ((starting_up = this->repository_.starting_up (server)) == 1) - { - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::activate_server: Going into handle_events\n")); - - // Will wait for the specified timeout. - int result = orb_core->reactor ()->handle_events (&timeout); - - if (result == 0 && timeout == ACE_Time_Value::zero) - { - // The timer is out and we are still in the while loop which - // means that the server is not activated. Set the - // starting_up_ value to '0' and - this->repository_.starting_up (server, 0); - - // print the same. - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot activate server <%s> using <%s>, " - "terminating it.\n", - server, - startup.c_str ())); - - // Kill the server - this->process_mgr_.terminate (spawned_pid); - - ACE_THROW(ImplementationRepository::CannotActivate - (CORBA::string_dup ("Timeout"))); - ACE_CHECK; - } - } - - // If the control comes here, it means that the server got activated. - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::activate_server: Got out of handle_events loop\n")); - - // Check to see if it disappeared on us - if (starting_up == -1) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find startup info for server <%s>\n", - server)); - - ACE_THROW (ImplementationRepository::NotFound ()); - ACE_CHECK; - } - - // Now check to see if it is responding yet. - int ready_error = this->ready_check (server); - - if (ready_error < 0) - { - // We got an error in ready_check, so shutdown the server and - // throw an exception - - this->process_mgr_.terminate (spawned_pid); - - if (ready_error == -1) - { - ACE_THROW (ImplementationRepository::CannotActivate - (CORBA::string_dup ("Timeout while pinging for readiness"))); - } - else - { - ACE_THROW (ImplementationRepository::CannotActivate - (CORBA::string_dup ("Unknown error"))); - } - } -} - - -// ready_check will continuously ping a server and either return when it -// responds to the ping or return -1 if it times out. -int -ImR_Activator_i::ready_check (const char *server) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)) -{ - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - - ACE_CString ping_object_ior, location; - ImplementationRepository::ServerObject_var ping_object; - - ACE_DECLARE_NEW_CORBA_ENV; - - // <end> is the end of the window where we can get a response before - // timing out - ACE_Time_Value end = ACE_OS::gettimeofday () - + OPTIONS::instance ()->startup_timeout (); - - // Get the ior for the "ping" object for the server - if (this->repository_.get_running_info (server, - location, - ping_object_ior) != 0) - { - // If get_running_info fails, something weird must have happened. - // Maybe it was removed after we started it up, but before we got here. - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find ServerObject IOR for server <%s>\n", - server)); - - ACE_THROW_RETURN ( - ImplementationRepository::NotFound (), - -2 - ); - } - - // Narrow the ping object - - ACE_TRY_EX (ping1) - { - // Get the Object - CORBA::Object_var object = - orb->string_to_object (ping_object_ior.c_str () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX (ping1); - - // Narrow it down to the correct interface - ping_object = - ImplementationRepository::ServerObject::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX (ping1); - - if (CORBA::is_nil (ping_object.in ())) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Invalid ServerObject IOR: <%s>\n", - ping_object_ior.c_str ())); - - ACE_THROW_RETURN ( - ImplementationRepository::NotFound (), - -2 - ); - } - - } - ACE_CATCHANY - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot activate server <%s>, " - "terminating it (Server Ping Object failed).\n", - server)); - - return -2; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-2); - - // Now ping it until we get a response. - while (ACE_OS::gettimeofday () < end) - { - ACE_TRY_EX (ping2); - { - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::ready_check: ping server.\n")); - - ping_object->ping (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK_EX (ping2); - - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::ready_check: Pinged Server OK\n")); - - // If we got here, we successfully pinged, therefore we - // can exit the function. - return 0; - } - ACE_CATCHANY // todo : I doubt we really want to retry on all exceptions. Maybe just transient? - { - // Ignore the exception - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::ready_check: Server not ready (Exception)\n")); - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-2); - - // Sleep between sending pings. - ACE_OS::sleep (OPTIONS::instance ()->ping_interval ()); } - // If we fall out here, that means we didn't get a response before timing - // out, so return an error. - return -1; -} + // Register with the ImR Locator + this->registration_token_ = + locator_->register_activator (name_.c_str(), activator.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + // Activate the manager for the root poa + PortableServer::POAManager_var poaman = + this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + poaman->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; -// Adds an entry to the Repository about this <server> + // Activate the manager for the activator poa + poaman = this->imr_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + poaman->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; -void -ImR_Activator_i::register_server ( - const char *server, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound - )) -{ - if (OPTIONS::instance ()->readonly ()) - { - ACE_THROW (CORBA::NO_PERMISSION ()); - } - - if (OPTIONS::instance ()->debug () >= 1) - ACE_DEBUG((LM_DEBUG, "Imr Activator: Register server %s.\n", server)); - - if (OPTIONS::instance ()->debug () >= 2) + if (this->debug_ > 1) { ACE_DEBUG ((LM_DEBUG, - "ImR_Activator_i::register_server:\nServer: %s\n" - "Command Line: %s\n" - "Working Directory: %s\n" - "Activation Mode: %s\n\n", - server, - options.command_line.in (), - options.working_directory.in (), - OPTIONS::instance ()->convert_str (options.activation))); - - for (CORBA::ULong i = 0; i < options.environment.length (); ++i) - ACE_DEBUG ((LM_DEBUG, "Environment variable %s=%s\n", - options.environment[i].name.in (), - options.environment[i].value.in ())); - } - - // Add the server - int status = this->repository_.add (server, - "", - options.command_line.in (), - options.environment, - options.working_directory.in (), - options.activation); - - if (status == 1) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Server %s Already Registered!\n", - server)); - ACE_THROW (ImplementationRepository::AlreadyRegistered ()); + "ImR_Activator_i::init: The Activator IOR is: <%s>\n", ior.in ())); } -} - - -// Updates the entry in the Repository about this <server> or adds it -// if necessary. - -void -ImR_Activator_i::reregister_server (const char *server, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound - )) -{ - if (OPTIONS::instance ()->debug () >= 1) - ACE_DEBUG((LM_DEBUG, "ImR Activator: Reregister server %s.\n", server)); - if (OPTIONS::instance ()->readonly ()) + // The last thing we do is write out the ior so that a test program can assume + // that the activator is ready to go as soon as the ior is written. + if (opts.ior_filename().length() > 0) { - ACE_THROW (CORBA::NO_PERMISSION ()); + FILE* fp = ACE_OS::fopen(opts.ior_filename().c_str(), "w"); + if (fp == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, + "ImR Activator: Could not open file: %s\n", opts.ior_filename().c_str()), -1); + } + ACE_OS::fprintf(fp, "%s", ior.in()); + ACE_OS::fclose(fp); } - - // Get current starting up value - int starting_up = this->repository_.starting_up (server); - - // Get ready to save the running info - ACE_CString location; - ACE_CString server_object_ior; - - // Only save the running info if it's still running before we remove it. - ACE_TRY - { - // Get the current running information - ACE_CString ping_location; - ACE_CString ping_object_ior; - this->repository_.get_running_info (server, - ping_location, - ping_object_ior); - - // Narrow the server - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - CORBA::Object_var object = - orb->string_to_object (ping_object_ior.c_str () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ImplementationRepository::ServerObject_var ping_object = - ImplementationRepository::ServerObject::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!CORBA::is_nil (ping_object.in ())) - { - // Ok, we've found our ior, now we remove the server from the - // repository in order to avoid restarting it if it's not - // running - this->repository_.remove (server); - - // Now ping the object - ping_object->ping (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // If the ping succeeded, then we will save the - // running information for this server - location = ping_location; - server_object_ior = ping_object_ior; - } } ACE_CATCHANY - { - // Ignore all exceptions - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Activator_i::init_with_orb"); + ACE_RE_THROW; + } ACE_ENDTRY; - - // Remove old info - this->repository_.remove (server); - - // Add server with new startup parameters - this->repository_.add (server, - "", - options.command_line.in (), - options.environment, - options.working_directory.in (), - options.activation); - - // Set the old running info - if (location.length () != 0) - this->repository_.update (server, location, server_object_ior); - - // Set old starting up value, if there was one. - if (starting_up != -1) - this->repository_.starting_up (server, starting_up); - - if (OPTIONS::instance()->debug () >= 2) - { - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::reregister_server:\nServer: %s\n" - "Command Line: %s\n" - "Working Directory: %s\n" - "Activation: %s\n\n", - server, - options.command_line.in (), - options.working_directory.in (), - OPTIONS::instance ()->convert_str (options.activation))); - for (CORBA::ULong i = 0; i < options.environment.length (); ++i) - ACE_DEBUG ((LM_DEBUG, "Environment variable %s=%s\n", - options.environment[i].name.in (), - options.environment[i].value.in ())); - } -} - - -// Remove the server entry from the Repository - -void -ImR_Activator_i::remove_server (const char *server - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)) -{ - if (OPTIONS::instance ()->readonly ()) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Activator is readonly. Can't remove server %s.\n", - server)); - ACE_THROW (CORBA::NO_PERMISSION ()); - } - - if (this->repository_.remove (server) == 0) - { - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Removed Server %s.\n", server)); - } - else - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Can't remove unknown server %s.\n", - server)); - ACE_THROW (ImplementationRepository::NotFound ()); - } + ACE_CHECK_RETURN (-1); + return 0; } -// Register the current location of the server -void -ImR_Activator_i::server_is_running (const char *server, - const char *partial_ior, - ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) +int +ImR_Activator_i::init (Options& opts ACE_ENV_ARG_DECL) { - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Server %s is running.\n", server)); - - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::server_is_running: at %s\n", partial_ior)); + ACE_ARGV av(opts.cmdline().c_str()); + int argc = av.argc(); - CORBA::String_var server_object_ior = - orb->object_to_string (server_object ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Update the status of the server in the repository. - if (this->repository_.update (server, partial_ior, server_object_ior.in ()) == 0) - { - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, - "ImR Activator: Status updated for server %s.\n", server)); - } - else - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Could not update running information for server <%s>\n", - server)); - ACE_THROW(ImplementationRepository::NotFound()); - } + CORBA::ORB_var orb = + CORBA::ORB_init(argc, av.argv(), "TAO_ImR_Activator" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(-1); - this->repository_.starting_up (server, 0); -} + int ret = this->init_with_orb(orb.in(), opts ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(-1); -// Remove the state information for the current server -void -ImR_Activator_i::server_is_shutting_down (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)) -{ - if (this->repository_.update (server, "", "") == 0) - { - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Shut down server %s.\n", server)); - } - else - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Could not update information for unknown server <%s>\n", - server)); - ACE_THROW (ImplementationRepository::NotFound ()); - } + return ret; } int -ImR_Activator_i::init (ACE_ENV_SINGLE_ARG_DECL) +ImR_Activator_i::fini (ACE_ENV_SINGLE_ARG_DECL) { - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - ACE_TRY - { - CORBA::Object_var obj = - orb->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - IORTable::Table_var adapter = - 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")); - return -1; - } - - obj = orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - if (CORBA::is_nil (obj.in ())) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to initialize the ROOT POA.\n"), - -1); - } - this->root_poa_ = PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - PortableServer::POAManager_var poa_manager = - this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::PolicyList policies (2); - policies.length (2); - - policies[0] = - this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - policies[1] = - this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // Create a child POA with userId "ImR_Activator" - this->imr_poa_ = - this->root_poa_->create_POA ("ImR_Activator", - poa_manager.in (), - policies - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - // If create_POA throws an exception then the process will end, and free all memory. - for (CORBA::ULong i = 0; i < policies.length (); ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - // Get the ObjectId for the string 'ImR_Activator' - PortableServer::ObjectId_var imr_id = - PortableServer::string_to_ObjectId ("ImR_Activator"); - - // Activate the object - this->imr_poa_->activate_object_with_id (imr_id.in (), - this - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - obj = this->imr_poa_->id_to_reference (imr_id.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - ImplementationRepository::Administration_var activator = - ImplementationRepository::Administration::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - - CORBA::String_var ior = orb->object_to_string (activator.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - adapter->bind ("ImR_Activator", ior.in() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - obj = orb->resolve_initial_references ("ImplRepoService" ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - if (CORBA::is_nil (obj.in ())) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to get a reference to a Locator.\n"), - -1); - } - - ImplementationRepository::Locator_var locator = - ImplementationRepository::Locator::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_DEBUG((LM_DEBUG, "Starting activator : %s\n", this->name_.c_str())); - - ACE_Reactor *reactor = orb->orb_core ()->reactor (); - - if (reactor != 0) - { - if (this->process_mgr_.open (ACE_Process_Manager::DEFAULT_SIZE, - reactor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "The ACE_Process_Manager didnt get initialized\n"), - -1); - } - } + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Shutting down...\n")); - // Initialize the persistent storage - if (this->repository_.init ()) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Repository failed to initialize\n"), - -1); - } + this->root_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - - // We need to send the list of our persisted server names to the Locator - // so that it knows we are managing them. - auto_ptr<Server_Repository::HASH_IMR_MAP::ITERATOR> - server_iter(this->repository_.new_iterator()); - if (server_iter.get () == 0) - { - ACE_THROW_RETURN (CORBA::NO_MEMORY (), -1); - } - ImplementationRepository::Locator::ServerNameList server_names; - server_names.length(this->repository_.get_repository_size()); - Server_Repository::HASH_IMR_MAP::ENTRY* next_entry = 0; - for (CORBA::ULong idx = 0;server_iter->next(next_entry) != 0; server_iter->advance()) - { - ACE_CString server_name = next_entry->ext_id_; - server_names[idx++] = server_name.c_str(); - } + this->unblock_all_servers(); - this->registration_token_ = - locator->register_activator (this->name_.c_str(), - activator.in (), - server_names - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + this->locator_->unregister_activator (name_.c_str(), + this->registration_token_ ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - // The last thing we do is write out the ior so that a test program can assume - // that the activator is ready to go as soon as the ior is written. - if (OPTIONS::instance ()->debug () >= 2) - { - ACE_DEBUG ((LM_DEBUG, - "ImR_Activator_i::init: The Activator IOR is: <%s>\n", - ior.in ())); - } - - ACE_CString filename = OPTIONS::instance()->output_filename(); - if (filename.length() > 0) - { - FILE* fp = ACE_OS::fopen(filename.c_str(), "w"); - if (fp != 0) { - ACE_OS::fprintf(fp, "%s", ior.in()); - ACE_OS::fclose(fp); - } else { - ACE_ERROR((LM_ERROR, "ImR Activator: Could not open file %s\n", filename.c_str())); - } - } + this->orb_->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; - } + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Shut down successfully.\n")); + } ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Server_i::init"); - ACE_RE_THROW; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Activator_i::fini"); + ACE_RE_THROW; + } ACE_ENDTRY; ACE_CHECK_RETURN (-1); return 0; } int -ImR_Activator_i::fini1 (ACE_ENV_SINGLE_ARG_DECL) +ImR_Activator_i::run (ACE_ENV_SINGLE_ARG_DECL) { - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - - ACE_TRY - { - CORBA::Object_var table_object = - 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); - ACE_TRY_CHECK; - - if (CORBA::is_nil (adapter.in ())) - { - ACE_ERROR ((LM_ERROR, "Nil IORTable\n")); - } - else - { - adapter->set_locator (IORTable::Locator::_nil () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Server_i::init"); - ACE_RE_THROW; - } - ACE_ENDTRY; + this->orb_->run(ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); return 0; } - -int -ImR_Activator_i::fini2 (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_TRY - { - this->imr_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - this->root_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Server_i::init"); - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); - return 0; -} - -int -ImR_Activator_i::run (ACE_ENV_SINGLE_ARG_DECL) +void +ImR_Activator_i::start_server +( + ImplementationRepository::AMH_ActivatorResponseHandler_ptr rh, + const char* name, + const char* cmdline, + const char* dir, + const ImplementationRepository::EnvironmentList & env ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) { - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); - - PortableServer::POAManager_var poa_manager = - this->imr_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - - poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - auto_ptr<Server_Repository::HASH_IMR_MAP::ITERATOR> - server_iter (this->repository_.new_iterator ()); - - if (server_iter.get () == 0) - ACE_THROW_RETURN (CORBA::NO_MEMORY (), -1); - - Server_Repository::HASH_IMR_MAP::ENTRY *server_entry; - - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::run: Activating AUTO_START servers\n")); + RHListPtr server; + waiting_servers_.find(name, server); + if (server.null()) + { + server = RHListPtr(new RHList); + int err = waiting_servers_.bind(name, server); + ACE_ASSERT(err == 0); + ACE_UNUSED_ARG(err); + } - // For each of the entries in the Server_Repository, get the startup - // information and activate the servers, if they are not already - // running. - while (!server_iter->done ()) + if (server->size() == 0) + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Spawn server <%s>\n", name)); + if (debug_ > 1) + ACE_DEBUG((LM_DEBUG, "\tcommand line : <%s>\n\tdirectory : <%s>\n", cmdline, dir)); + + // Launch the process using the given command line. + ACE_Process_Options proc_opts; + proc_opts.command_line (cmdline); + proc_opts.working_directory (dir); + // Win32 does not support the CLOSE_ON_EXEC semantics for sockets + // the way unix does, so in order to avoid having the child process + // hold the listen socket open, we force the child to inherit no + // handles. This includes stdin, stdout, logs, etc. + proc_opts.handle_inheritence (0); + + for (CORBA::ULong i = 0; i < env.length(); ++i) + proc_opts.setenv (env[i].name.in(), env[i].value.in()); + + int pid = this->process_mgr_.spawn (proc_opts); + if (pid == ACE_INVALID_PID) { - server_iter->next (server_entry); - server_iter->advance (); + ACE_ERROR ((LM_ERROR, + "ImR Activator: Cannot spawn server <%s> using <%s>\n", name, cmdline)); - ACE_CString logical, server, command_line, working_directory, location; - ImplementationRepository::ActivationMode activation - = ImplementationRepository::NORMAL; - ImplementationRepository::EnvironmentList environment_vars ; + ImplementationRepository::CannotActivate* ex = new + ImplementationRepository::CannotActivate(CORBA::string_dup ("Process Creation Failed")); - server_entry->int_id_->get_startup_info (logical, - command_line, - environment_vars, - working_directory, - activation); + ImplementationRepository::AMH_ActivatorExceptionHolder holder(ex); ACE_TRY - { - if (activation == ImplementationRepository::AUTO_START) - this->activate_server (server_entry->ext_id_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } + { + rh->start_server_excep (&holder ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } ACE_CATCHANY - { - if (OPTIONS::instance()->debug () >= 2) - { - ACE_DEBUG ((LM_DEBUG, - "ImR_Activator_i::run: AUTO_START Could not activate <%s>\n", - server_entry->ext_id_.c_str ())); - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "AUTO_START"); - } - // Ignore exceptions - } + { + ACE_ERROR((LM_ERROR, "Exception during asynch exception throw.\n")); + } ACE_ENDTRY; + return; } - orb->run (0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} + if (debug_ > 0) + { + ACE_DEBUG((LM_DEBUG, + "ImR Activator: Successfully spawned. Waiting for status of <%s>...\n", name)); + } + } + else if (debug_ > 0) + { + ACE_DEBUG((LM_DEBUG, "ImR Activator: Waiting for status of <%s>...\n", name)); + } -ImR_Activator_i::~ImR_Activator_i (void) -{ + server->push_back(ImplementationRepository::AMH_ActivatorResponseHandler::_duplicate(rh)); } - -// Returns the startup information for a server - void -ImR_Activator_i::find (const char *server, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)) +ImR_Activator_i::server_status_changed +( + ImplementationRepository::AMH_ActivatorResponseHandler_ptr rh, + const char* name ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) { - ACE_CString logical, command_line, working_directory; - ACE_CString location, server_object_ior; - ImplementationRepository::EnvironmentList environment_vars; - ImplementationRepository::ActivationMode activation; - - ACE_NEW_THROW_EX (info, - ImplementationRepository::ServerInformation, - CORBA::NO_MEMORY ()); + // First, send the reply, because the servers server_is_running shouldn't + // have to wait for all of the waiting clients to return. + ACE_TRY_EX(ACE_TRY_LABEL2) + { + rh->server_status_changed(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK_EX(ACE_TRY_LABEL2); + } + ACE_CATCHANY + { + if (debug_ > 1) + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Activator_i::server_status_changed() return"); + } + ACE_ENDTRY; ACE_CHECK; - // Get the information from the server repository. - if (this->repository_.get_startup_info (server, - logical, - command_line, - environment_vars, - working_directory, - activation) != 0) - ACE_THROW (ImplementationRepository::NotFound ()); - - // Get the running information which would include the location - // where the server is running and its IOR. - if (this->repository_.get_running_info (server, - location, - server_object_ior) != 0) + RHListPtr server; + this->waiting_servers_.find(name, server); + if (! server.null() && server->size() > 0) { - ACE_THROW (ImplementationRepository::NotFound ()); + this->unblock_server(server); + } + else + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: No waiting clients.\n")); } - - // Fill in <info>. - info->logical_server = CORBA::string_dup (logical.c_str ()); - info->server = CORBA::string_dup (server); - info->startup.command_line = CORBA::string_dup (command_line.c_str ()); - info->startup.environment = environment_vars; - info->startup.working_directory = CORBA::string_dup (working_directory.c_str ()); - info->startup.activation = activation; - info->startup.activator = this->name_.c_str(); - info->location = CORBA::string_dup (location.c_str ()); - - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Found server %s.\n", server)); } - -// Used to access the list of servers registered. May also return an -// iterator which can be used to access more than <how_many> of them. - void -ImR_Activator_i::list (CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) +ImR_Activator_i::unblock_all_servers() { - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: List servers.\n")); - - // Initialize the out variables, so if we return early, they will - // not be dangling. - server_iterator = - ImplementationRepository::ServerInformationIterator::_nil (); - - ACE_NEW_THROW_EX (server_list, - ImplementationRepository::ServerInformationList (0), - CORBA::NO_MEMORY ()); - - // Get a new iterator - auto_ptr<Server_Repository::HASH_IMR_MAP::ITERATOR> server_iter (this->repository_.new_iterator ()); - - // Check for a memory error. - if (server_iter.get () == 0) - ACE_THROW (CORBA::NO_MEMORY ()); - - // Number of servers that will go into the server_list. - CORBA::ULong n; - - if (this->repository_.get_repository_size () > how_many) - n = how_many; - else - n = ACE_static_cast (CORBA::ULong, - this->repository_.get_repository_size ()); - - // Now copy over to the server list. - - server_list->length (n); + ServerMap::ENTRY* entry = 0; + ServerMap::ITERATOR it(this->waiting_servers_); + for (; it.next(entry); it.advance()) + { + ACE_CString name = entry->ext_id_; + RHListPtr server = entry->int_id_; + this->unblock_server(server); + } + this->waiting_servers_.unbind_all(); +} - Server_Repository::HASH_IMR_MAP::ENTRY *server_entry; +void +ImR_Activator_i::unblock_server(RHListPtr server) +{ + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Unblocking %u waiting clients.\n", server->size())); - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::list: Filling ServerList with %d servers\n", n)); + RHList& svr = *server; - for (CORBA::ULong i = 0; i < n; i++) + for (size_t i = 0; i < svr.size(); ++i) + { + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY { - server_iter->next (server_entry); - server_iter->advance (); - - ACE_CString logical, server, command_line, working_directory; - ACE_CString location, server_ior; - - ImplementationRepository::EnvironmentList environment_vars; - ImplementationRepository::ActivationMode activation = - ImplementationRepository::NORMAL; - - server_entry->int_id_->get_running_info (location, server_ior); - server_entry->int_id_->get_startup_info (logical, - command_line, - environment_vars, - working_directory, - activation); - - server_list[i].logical_server = CORBA::string_dup (logical.c_str ()); - server_list[i].server = CORBA::string_dup (server_entry->ext_id_.c_str ()); - server_list[i].startup.command_line = CORBA::string_dup (command_line.c_str ()); - server_list[i].startup.environment = environment_vars; - server_list[i].startup.working_directory = CORBA::string_dup (working_directory.c_str ()); - server_list[i].startup.activation = activation; - server_list[i].startup.activator = CORBA::string_dup(this->name_.c_str()); - server_list[i].location = CORBA::string_dup (location.c_str ()); + ImplementationRepository::AMH_ActivatorResponseHandler_var ssrh = svr[i]; + ssrh->start_server(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; } - - - // Now work on the iterator - - // Only set up an iterator if we need to - if (this->repository_.get_repository_size () > how_many) + ACE_CATCHANY { - if (OPTIONS::instance()->debug () >= 2) - ACE_DEBUG ((LM_DEBUG, "ImR_Activator_i::list: Creating ServerInformationIterator\n")); - - // Create an imr_iter and give it the server_iter pointer - ImR_Iterator *imr_iter; - - ACE_NEW_THROW_EX (imr_iter, - ImR_Iterator (server_iter.release (), this->root_poa_.in ()), - CORBA::NO_MEMORY ()); - - ACE_TRY - { - PortableServer::ObjectId_var id = - this->root_poa_->activate_object (imr_iter ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - server_iterator = imr_iter->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; + if (debug_ > 1) + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Activator_i::unblock_server()"); } + ACE_ENDTRY; + } + server->clear(); } +//@@ todo : Use the process_manager so that we're notified when any of our launched +// processes die. Add a new operation to the Locator idl, so that we can +// notify the locator when this happens. -/** - * Attempt to gracefully shut down the server, if that fails, will try - * to do it ungracefully. - */ -void -ImR_Activator_i::shutdown_server (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)) -{ - if (OPTIONS::instance()->debug () >= 1) - ACE_DEBUG ((LM_DEBUG, "ImR Activator: Shutting down server.\n")); +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - CORBA::ORB_var orb = OPTIONS::instance ()->orb (); +template class ACE_Array_Base<ImplementationRepository::AMH_ActivatorResponseHandler_var>; +template class ACE_Array<ImplementationRepository::AMH_ActivatorResponseHandler_var>; +template class ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>; - ACE_CString server_object_ior, location; +template class ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex>; - // Find out if it is already running - if (this->repository_.get_running_info (server, location, server_object_ior) != 0) - { - // If we had problems getting the server_object_ior, probably meant that - // there is no <server> registered - ACE_ERROR ((LM_ERROR, - "ImR Activator: Cannot find ServerObject IOR for server <%s>\n", - server)); - ACE_THROW (ImplementationRepository::NotFound ()); - } +template class ACE_Hash_Map_Entry<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> >; +template class ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex>, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; - // Check to see if there is one running (if there is a server_object_ior) - if (server_object_ior.length () != 0) - { - // It is running, so shut it down - ACE_TRY - { - CORBA::Object_var object = - orb->string_to_object (server_object_ior.c_str () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ImplementationRepository::ServerObject_var server_object = - ImplementationRepository::ServerObject::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (CORBA::is_nil (server_object.in ())) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Invalid ServerObject IOR: <%s>\n", - server_object_ior.c_str ())); - ACE_THROW (ImplementationRepository::NotFound ()); - } +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - server_object->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; +#pragma instantiate ACE_Array_Base<ImplementationRepository::AMH_ActivatorResponseHandler_var> +#pragma instantiate ACE_Array<ImplementationRepository::AMH_ActivatorResponseHandler_var> +#pragma instantiate ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var> - // This removes running info from repository - if (this->repository_.update (server, "", "") != 0) - { - ACE_ERROR ((LM_ERROR, - "ImR Activator: Could not update information for unknown server <%s>\n", - server)); - ACE_THROW (ImplementationRepository::NotFound ()); - } - } - ACE_CATCHANY - { - ACE_RE_THROW; - } - ACE_ENDTRY; - } -} +#pragma instantiate ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> -void ImR_Activator_i::shutdown_repo( ACE_ENV_SINGLE_ARG_DECL ) - ACE_THROW_SPEC( (CORBA::SystemException) ) -{ - CORBA::ORB_var orb = OPTIONS::instance ()->orb () ; - this->fini1 (ACE_ENV_SINGLE_ARG_PARAMETER); - orb->shutdown (0); - this->fini2 (ACE_ENV_SINGLE_ARG_PARAMETER) ; -} +#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> > +#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var>, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr<ACE_Hash_Map_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> >; -template class ACE_Auto_Basic_Ptr<ACE_Hash_Map_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> >; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr<ACE_Hash_Map_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> > -#pragma instantiate ACE_Auto_Basic_Ptr<ACE_Hash_Map_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> > #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h index 71e5dd3eab4..fbc85911317 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h @@ -1,201 +1,105 @@ // -*- C++ -*- //============================================================================= /** - * @file ImR_Activator_i.h - * - * $Id$ - * - * @brief This class implements the Implementation Repository. - * - * @author Priyanka Gontla <gontla_p@ociweb.com> - * @author Darrell Brunsch <brunsch@cs.wustl.edu> - */ +* @file ImR_Activator_i.h +* +* $Id$ +* +* @author Priyanka Gontla <gontla_p@ociweb.com> +* @author Darrell Brunsch <brunsch@cs.wustl.edu> +*/ //============================================================================= #ifndef IMR_ACTIVATOR_I_H #define IMR_ACTIVATOR_I_H -#include "Server_Repository.h" +#include "activator_export.h" -#include "orbsvcs/IOR_Multicast.h" - -#include "tao/PortableServer/ImplRepoS.h" -#include "tao/IORTable/IORTable.h" +#include "ImR_ActivatorS.h" +#include "ImR_LocatorC.h" #include "ace/Process_Manager.h" +#include "ace/Vector_T.h" +#include "ace/Hash_Map_Manager.h" +#include "ace/Bound_Ptr.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class Options; /** - * @class ImR_Activator_i - * - * @brief IMR Activator Interface. - * - * This class provides the interface for the various activities - * that can be done by the ImR_Activator. - * - */ -class ImR_Activator_i : public POA_ImplementationRepository::Administration +* @class ImR_Activator_i +* +* @brief IMR Activator Interface. +* +* This class provides the interface for the various activities +* that can be done by the ImR_Activator. +* +*/ +class Activator_Export ImR_Activator_i : public POA_ImplementationRepository::AMH_Activator { + typedef ACE_Vector<ImplementationRepository::AMH_ActivatorResponseHandler_var> RHList; + typedef ACE_Strong_Bound_Ptr<RHList, ACE_Null_Mutex> RHListPtr; + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + RHListPtr, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> ServerMap; + public: - // = Constructor and destructor ImR_Activator_i (void); - ~ImR_Activator_i (void); - - /// IOR_LookupTable_Callback method. Will return an IOR - char *find_ior (const char* object_name ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - - // = Interface methods - - /// Starts up the server <server> if not already running. - virtual void activate_server ( - const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate - )); - - /// Adds the server to the repository and registers the startup information - /// about the server <server>. - 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 - )); - - /// Updates the startup information about the server <server>. - virtual void reregister_server ( - const char *server, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::AlreadyRegistered, - ImplementationRepository::NotFound - )); - - /// Removes the server <server> from the repository. - virtual void remove_server ( - const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)); - - /// Attempts to gracefully shut down the server, - virtual void shutdown_server ( - const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)); - - /// Shuts down the repository. - virtual void shutdown_repo ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException)); - - /// Called by the server to update transient information such as current - /// location of the <server> and its ServerObject. - virtual void server_is_running ( - const char *server, - const char * partial_ior, - ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)); - - /// What the server should call before it shuts down. - virtual void server_is_shutting_down ( - const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)); - - /// Returns the startup information for a server - virtual void find ( - const char *server, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)); - - /// Used to access the list of servers registered. May also return an - /// iterator which can be used to access more than <how_many> of them. - virtual void list ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC ((CORBA::SystemException)); - - /// Implementation of activate_server. <check_startup> is a flag to check - /// the activation mode before attempting to start it. - virtual char *activate_server_with_startup (const char *server, - int check_startup - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate - )); + + void start_server ( + ImplementationRepository::AMH_ActivatorResponseHandler_ptr rh, + const char* name, + const char* cmdline, + const char* dir, + const ImplementationRepository::EnvironmentList & env ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void server_status_changed( + ImplementationRepository::AMH_ActivatorResponseHandler_ptr rh, + const char* name ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); /// Initialize the Server state - parsing arguments and waiting. - int init (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + int init (Options& opts ACE_ENV_ARG_DECL_WITH_DEFAULTS); - /// Cleans up any state created by init (), called before ORB shutdown. - int fini1 (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); - - /// Cleans up any state created by init (), called after ORB shutdown. - int fini2 (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + /// Cleans up any state created by init*. + int fini (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); /// Runs the orb. int run (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); private: - char* activate_server_i (const char *server,int check_startup - ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate - )); - - /// This method starts the server process. - void start_server_i ( - const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate - )); - - /// This method will continuously ping a server and either return when it - /// responds to the ping or return -1 if it times out. - int ready_check (const char *server) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)); - - /// The Process Manager. - ACE_Process_Manager process_mgr_; + int init_with_orb (CORBA::ORB_ptr orb, const Options& opts ACE_ENV_ARG_DECL_WITH_DEFAULTS); - /// Repository containing information about each server. - Server_Repository repository_; + void unblock_all_servers(); + void unblock_server(RHListPtr server); - /// The Root POA for this ORB. - PortableServer::POA_var root_poa_; +private: + ACE_Process_Manager process_mgr_; - /// Implementation Repository's POA. + PortableServer::POA_var root_poa_; PortableServer::POA_var imr_poa_; + /// IMR Locator Object + ImplementationRepository::Locator_var locator_; + /// We're given a token when registering with the locator, which /// we must use when unregistering. CORBA::Long registration_token_; + CORBA::ORB_var orb_; + + unsigned int debug_; + ACE_CString name_; + + ServerMap waiting_servers_; }; #endif /* IMR_ACTIVATOR_I_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp index 791465ec7b7..3d8bcf6b596 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp @@ -5,17 +5,33 @@ #include "Locator_Options.h" int -run_standalone (void) +run_standalone (Options& opts) { ImR_Locator_i server; ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { - int status = server.init (ACE_ENV_SINGLE_ARG_PARAMETER); + int status = server.init (opts ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - if (status != -1) - return 0; + if (status == -1) + { + return 1; + } + else + { + // Run the server if it is initialized correctly. + server.run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // End the server after its work is done. + status = server.fini (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (status == -1) + return 1; + } + return 0; } ACE_CATCH (CORBA::SystemException, sysex) { @@ -56,22 +72,93 @@ run_service (void) #endif /* ACE_WIN32 */ } -#include <ace/streams.h> +/** + * Executes the various commands that are useful for a NT service. Right + * now these include 'install' and 'remove'. Others, such as 'start' and + * 'stop' can be added, but the 'net' program in Windows already handles + * these commands. + */ +static int +run_service_command (Options& opts) +{ + if (opts.service_command() == Options::SC_NONE) + return 0; + +#if defined (ACE_WIN32) + SERVICE::instance()->name (IMR_LOCATOR_SERVICE_NAME, IMR_LOCATOR_DISPLAY_NAME); + + if (opts.service_command() == Options::SC_INSTALL) + { + const DWORD MAX_PATH_LENGTH = 4096; + char pathname[MAX_PATH_LENGTH]; + + DWORD length = ACE_TEXT_GetModuleFileName(NULL, pathname, MAX_PATH_LENGTH); + if (length == 0 || length >= MAX_PATH_LENGTH - sizeof(" -s")) + { + ACE_ERROR ((LM_ERROR, "Error: Could not get module file name\n")); + return -1; + } + + // Append the command used for running the implrepo as a service + ACE_OS::strcat (pathname, ACE_TEXT (" -s")); + + int ret = SERVICE::instance ()->insert (SERVICE_DEMAND_START, + SERVICE_ERROR_NORMAL, + pathname); + if (ret != -1) { + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Service installed.\n")); + opts.save_registry_options(); + } else { + ACE_ERROR((LM_ERROR, "Error: Failed to install service. error:%d\n", errno)); + } + if (ret == 0) + return 1; + } + else if (opts.service_command() == Options::SC_REMOVE) + { + int ret = SERVICE::instance ()->remove (); + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Service removed.\n")); + if (ret == 0) + return 1; // If successfull, then we don't want to continue. + } + else + { + ACE_ERROR ((LM_ERROR, "Error: Unknown service command :%d \n", + opts.service_command())); + return -1; + } + + return -1; + +#else /* ACE_WIN32 */ + ACE_ERROR ((LM_ERROR, "NT Service not supported on this platform")); + return -1; +#endif /* ACE_WIN32 */ +} int main (int argc, char *argv[]) { - int result = OPTIONS::instance()->init(argc, argv); + Options opts; + + int result = opts.init (argc, argv); + if (result < 0) + return 1; // Error + else if (result > 0) + return 0; // No error, but we should exit anyway. + result = run_service_command(opts); if (result < 0) - return 1; // Error parsing args + return 1; // Error else if (result > 0) return 0; // No error, but we should exit anyway. - if (OPTIONS::instance()->service()) - return run_service(); + if (opts.service()) + { + return run_service (); + } - return run_standalone(); + return run_standalone (opts); } #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl new file mode 100644 index 00000000000..fc2795584cb --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.idl @@ -0,0 +1,18 @@ +// -*- IDL -*- + +// $Id$ + +#include "ImR_Activator.idl" + +module ImplementationRepository +{ + interface Locator : Administration + { + // returns a token that can be used (along with activator name) to unregister the activator. + long register_activator (in string name, in Activator act); + + // You must pass in the token returned from register_activator. + void unregister_activator (in string name, in long token); + }; +}; + diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp index f2971a7fbc5..6602e7a0a88 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp @@ -1,706 +1,890 @@ // $Id$ #include "ImR_Locator_i.h" +#include "utils.h" +#include "Iterator.h" -#include "Locator_Options.h" -#include "Forwarder.h" -#include "INS_Locator.h" -#include "Adapter_Activator.h" - -#include "orbsvcs/IOR_Multicast.h" +#include "orbsvcs/Time_Utilities.h" #include "tao/IORTable/IORTable.h" #include "tao/PortableServer/POA.h" - #include "tao/ORB_Core.h" #include "tao/default_ports.h" +#include "tao/Messaging/Messaging.h" -#include "ace/Get_Opt.h" -#include "ace/Process_Manager.h" +#include "ace/ARGV.h" #include "ace/OS_NS_sys_time.h" +static const int DEFAULT_START_LIMIT = 1; +static const int IS_ALIVE_RETRY_COUNT = 60; +static const ACE_Time_Value IS_ALIVE_RETRY_INTERVAL(1); + +static const ACE_Time_Value DEFAULT_SERVER_TIMEOUT(0, 100 * 1000); // 100ms + +// If the POA locking problem is ever corrected, this class (along with +// some code in ImR_Locator_i::server_is_running) should be removed. +#if !defined (ACE_HAS_RECURSIVE_MUTEXES) +class Status_Changed_Timer: public ACE_Event_Handler +{ +public: + Status_Changed_Timer(ImR_Locator_i* locator, + const Server_Info_Ptr& info); + + virtual int handle_timeout (const ACE_Time_Value& current_time, + const void* act); +private: + ImR_Locator_i* locator_; + Server_Info_Ptr info_; +}; + +Status_Changed_Timer::Status_Changed_Timer(ImR_Locator_i* locator, + const Server_Info_Ptr& info) + : locator_(locator), + info_(info) +{ +} + +int +Status_Changed_Timer::handle_timeout (const ACE_Time_Value&, + const void*) +{ + locator_->server_status_changed(*info_); + delete this; + return 0; +} +#endif /* ACE_HAS_RECURSIVE_MUTEXES */ + + ImR_Locator_i::ImR_Locator_i () - : - forwarder_impl_ (0), - activator_ (0), - ins_locator_ (0) +: forwarder_(*this) +, ins_locator_(*this) +, debug_(0) +, read_only_(false) { - this->ins_locator_ = new INS_Locator(this); } int -ImR_Locator_i::init (ACE_ENV_SINGLE_ARG_DECL) +ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts ACE_ENV_ARG_DECL) { - orb_ = OPTIONS::instance()->orb(); + orb_ = CORBA::ORB::_duplicate(orb); + debug_ = opts.debug(); + read_only_ = opts.readonly(); + startup_timeout_ = opts.startup_timeout(); + ping_interval_ = opts.ping_interval(); CORBA::Object_var obj = - orb_->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + this->orb_->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + this->root_poa_ = PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); + ACE_ASSERT(! CORBA::is_nil(this->root_poa_.in())); - if (CORBA::is_nil (root_poa.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to obtain RootPOA reference.\n"), - -1); + this->forwarder_.init(orb ACE_ENV_ARG_PARAMETER); + this->adapter_.init(& this->forwarder_); - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + // Register the Adapter_Activator reference to be the RootPOA's + // Adapter Activator. + root_poa_->the_activator (&this->adapter_ ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - // We are going to set the policies to be used with the child - // POA. - CORBA::PolicyList policies (2); - policies.length (2); - - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); + CORBA::PolicyList policies; + imr_poa_ = root_poa_->create_POA ("ImplRepoService", + PortableServer::POAManager::_nil(), policies ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT - ACE_ENV_ARG_PARAMETER); + PortableServer::ObjectId_var id = this->imr_poa_->activate_object(this ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - PortableServer::POA_var locator_poa = - root_poa->create_POA ("ImplRepoService", - poa_manager.in (), - policies - ACE_ENV_ARG_PARAMETER); + obj = this->imr_poa_->id_to_reference (id.in() ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + CORBA::String_var ior = this->orb_->object_to_string(obj.in() ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - // Creation of the new POAs is over, so destroy the Policy_ptr's as - // we dont need them anymore. - for (CORBA::ULong i = 0; i < policies.length (); ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } + // Register the ImR for use with INS + obj = orb->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + IORTable::Table_var ior_table = IORTable::Table::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + ACE_ASSERT(! CORBA::is_nil(ior_table.in())); + ior_table->bind ("ImplRepoService", ior.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + ior_table->set_locator (&this->ins_locator_ ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); - // Register 'this' with the ImR_Forwarder - ACE_NEW_RETURN (this->forwarder_impl_, - ImR_Forwarder (this, orb_.in ()), - -1); + // Set up multicast support (if enabled) + if (opts.multicast()) + { + ACE_Reactor* reactor = orb->orb_core()->reactor(); + if (this->setup_multicast (reactor, ior.in()) != 0) + return -1; + } - // Get the ObjectID for the string child POA name. - PortableServer::ObjectId_var locator_id = - PortableServer::string_to_ObjectId ("ImplRepoService"); + // Initialize the persistent storage. This will load any values that + // may have been persisted before. + // 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()); + if (init_result == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, "Repository failed to initialize\n"), -1); + } - // Activate the object with the given id. - locator_poa->activate_object_with_id (locator_id.in (), - this - ACE_ENV_ARG_PARAMETER); + // Activate the two poa managers + PortableServer::POAManager_var poaman = + this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - - // Get the locator object reference - CORBA::Object_var locator_obj = - locator_poa->id_to_reference (locator_id.in () ACE_ENV_ARG_PARAMETER); + poaman->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - - // Get the reference to IORTable. - obj = orb_->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); + poaman = this->imr_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - - // Narrow it down to the correct type - IORTable::Table_var adapter = - IORTable::Table::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + poaman->activate (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - CORBA::String_var ior; - - if (CORBA::is_nil (adapter.in ())) - { - ACE_ERROR ((LM_ERROR, "Nil IORTable\n")); - } - else + // We write the ior file last so that the tests can know we are ready. + if (opts.ior_filename().length() > 0) + { + FILE* fp = ACE_OS::fopen(opts.ior_filename().c_str(), "w"); + if (fp == 0) { - // Set the locator - adapter->set_locator (this->ins_locator_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Get the stringified format of the locator's object - // reference. - ior = orb_->object_to_string (locator_obj.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Finally, bind this ior to the child POA's name in the - // IORTable. - adapter->bind ("ImplRepoService", ior.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); + ACE_ERROR_RETURN ((LM_ERROR, + "ImR Locator: Could not open file: %s\n", opts.ior_filename().c_str()), -1); } + ACE_OS::fprintf(fp, "%s", ior.in()); + ACE_OS::fclose(fp); + } - ACE_CString output_filename = OPTIONS::instance()->output_filename(); - - if (output_filename.length() > 0) - { - FILE* fp = ACE_OS::fopen(output_filename.c_str(), "w"); - ACE_ASSERT(fp != 0); - ACE_OS::fprintf(fp, "%s", ior.in()); - ACE_OS::fclose(fp); - } + return 0; +} - ACE_NEW_RETURN (this->activator_, - ImR_Adapter_Activator (this->forwarder_impl_), - -1); +int +ImR_Locator_i::init(Options& opts ACE_ENV_ARG_DECL) +{ + ACE_ARGV av(opts.cmdline().c_str()); + int argc = av.argc(); + char** argv = av.argv(); + + CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "TAO_ImR_Locator" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(-1); + int err = this->init_with_orb(orb.in(), opts ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(-1); + return err; +} - // Register the Adapter_Activator reference to be the RootPOA's - // Adapter Activator. - root_poa->the_activator (this->activator_ ACE_ENV_ARG_PARAMETER); +int +ImR_Locator_i::run(ACE_ENV_SINGLE_ARG_DECL) +{ + if (debug_ > 0) + { + ACE_DEBUG((LM_DEBUG, "ImR Locator: Running\n" + "\tPing Interval : %ds\n" + "\tStartup Timeout : %ds\n" + "\tPersistence : %s\n" + "\tLocked : %s\n\n", + ping_interval_.sec(), + startup_timeout_.sec(), + repository_.repo_mode(), + read_only_ ? "true" : "false")); + } + this->auto_start_servers(ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (-1); - if (OPTIONS::instance()->multicast()) - { - ACE_Reactor *reactor = orb_->orb_core ()->reactor (); + this->orb_->run(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + return 0; +} - ACE_Process_Manager process_manager; - process_manager.open (ACE_Process_Manager::DEFAULT_SIZE, reactor); +int +ImR_Locator_i::fini (ACE_ENV_SINGLE_ARG_DECL) +{ + ACE_TRY + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Shutting down...\n")); - if (this->setup_multicast (reactor, ior.in ()) != 0) - return -1; - } - else - { - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Multicast Handler disabled.\n")); - } - } + this->root_poa_->destroy (1, 1 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); + this->orb_->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; - orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER); + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Shut down successfully.\n")); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Locator_i::fini"); + ACE_RE_THROW; + } + ACE_ENDTRY; ACE_CHECK_RETURN (-1); - return 0; } -/** - * First, figure out if we should set up a multicast handler (based on command - * line settings) and which port to set it up (based on the environment, - * command line, or the default IMPLREPOSERVICE port). Then register the - * handler with the @param reactor. - * - * @retval 0 ok - * @retval -1 failed - */ int -ImR_Locator_i::setup_multicast (ACE_Reactor *reactor, - const char *ior) +ImR_Locator_i::setup_multicast (ACE_Reactor* reactor, const char* ior) { ACE_ASSERT (reactor != 0); + ACE_ASSERT (ior != 0); #if defined (ACE_HAS_IP_MULTICAST) + TAO_ORB_Core* core = TAO_ORB_Core_instance(); // See if the -ORBMulticastDiscoveryEndpoint option was specified. - ACE_CString mde (TAO_ORB_Core_instance ()->orb_params ()->mcast_discovery_endpoint ()); - - // First, see if the user has given us a multicast port number - // on the command-line; - u_short port = - TAO_ORB_Core_instance ()->orb_params ()->service_port (IMPLREPOSERVICE); + ACE_CString mde (core->orb_params()->mcast_discovery_endpoint()); - if (port == 0) + if (mde.length () != 0) + { + if (this->ior_multicast_.init(ior, + mde.c_str(), TAO_SERVICEID_IMPLREPOSERVICE) == -1) + { + return -1; + } + } + else + { + // Port can be specified as param, env var, or default + CORBA::UShort port = core->orb_params()->service_port(IMPLREPOSERVICE); + if (port == 0) { // Check environment var. for multicast port. - const char *port_number = ACE_OS::getenv ("ImplRepoServicePort"); + const char* port_number = ACE_OS::getenv ("ImplRepoServicePort"); if (port_number != 0) port = ACE_OS::atoi (port_number); } + if (port == 0) + port = TAO_DEFAULT_IMPLREPO_SERVER_REQUEST_PORT; - // Port wasn't specified on the command-line or in environment - - // use the default. - if (port == 0) - port = TAO_DEFAULT_IMPLREPO_SERVER_REQUEST_PORT; - - // Instantiate a handler which will handle client requests for - // the ImplRepoService ior, received on the multicast port. - TAO_IOR_Multicast *ior_multicast; - - ACE_NEW_RETURN (ior_multicast, - TAO_IOR_Multicast (), - -1); - - if (mde.length () != 0) - { - // initializes - if (ior_multicast->init (ior, - mde.c_str (), - TAO_SERVICEID_IMPLREPOSERVICE) == -1) - return -1; - } - else + if (this->ior_multicast_.init(ior, port, + ACE_DEFAULT_MULTICAST_ADDR, TAO_SERVICEID_IMPLREPOSERVICE) == -1) { - if (ior_multicast->init (ior, - port, - ACE_DEFAULT_MULTICAST_ADDR, - TAO_SERVICEID_IMPLREPOSERVICE) == -1) - return -1; + return -1; } + } // Register event handler for the ior multicast. - if (reactor->register_handler (ior_multicast, - ACE_Event_Handler::READ_MASK) == -1) - { - if (OPTIONS::instance()->debug() >= 1) - ACE_DEBUG ((LM_DEBUG, - "ImR Locator: " - "cannot register Event handler\n")); - return -1; - } + if (reactor->register_handler (&this->ior_multicast_, + ACE_Event_Handler::READ_MASK) == -1) + { + if (debug_ >= 1) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: cannot register Event handler\n")); + return -1; + } - if (OPTIONS::instance()->debug() >= 1) - ACE_DEBUG ((LM_DEBUG, - "ImR Locator: Multicast Handler enabled.\n")); + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Multicast Handler enabled.\n")); return 0; -#else /* ACE_HAS_IP_MULTICAST */ - +#else /* ACE_HAS_IP_MULTICAST*/ ACE_UNUSED_ARG (reactor); ACE_UNUSED_ARG (ior); - ACE_DEBUG ((LM_WARNING, - "ImR Locator: " - "ACE_HAS_IP_MULTICAST is not defined. " - "Multicast support disabled.\n")); - return 0; -#endif /* ACE_HAS_IP_MULTICAST */ +#endif /* ACE_HAS_IP_MULTICAST*/ } CORBA::Long -ImR_Locator_i::register_activator (const char* activator, - ImplementationRepository::Administration_ptr admin, - const ImplementationRepository::Locator::ServerNameList & servers - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) +ImR_Locator_i::register_activator (const char* aname, + ImplementationRepository::Activator_ptr activator + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) { - for (CORBA::ULong idx = 0; idx < servers.length(); ++idx) { - const char* server = servers[idx]; - int err = this->server_map_.bind(server, activator); - ACE_ASSERT(err == 0 || err == 1); - ACE_UNUSED_ARG (err); - } + ACE_ASSERT(aname != 0); + ACE_ASSERT(! CORBA::is_nil(activator)); - ActivatorInfo info; - // We save the unique hash value of the passed in admin object, so that - // we can prevent accidental unregister by a different activator. - info.token = ACE_OS::gettimeofday().msec(); - info.admin = ImplementationRepository::Administration::_duplicate(admin); + // Before we can register the activator, we need to ensure that any existing + // registration is purged. + this->unregister_activator_i(aname); + ACE_CHECK_RETURN(0); - int bind_return = this->activator_map_.bind (activator, info); + CORBA::String_var ior = + this->orb_->object_to_string (activator ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); - if (bind_return == 1) // Success, but was already bound. + CORBA::Long token = ACE_OS::gettimeofday().msec(); + + int err = this->repository_.add_activator (aname, token, ior.in(), activator); + ACE_ASSERT(err == 0); + ACE_UNUSED_ARG(err); + + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activator registered for %s.\n", aname)); + + return token; +} + +void +ImR_Locator_i::unregister_activator (const char* aname, + CORBA::Long token + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_ASSERT(aname != 0); + Activator_Info_Ptr info = + this->get_activator (aname); + ACE_CHECK; + + if (! info.null()) { - if (OPTIONS::instance()->debug() >= 1) + if (info->token != token && this->debug_ > 0) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: New activator registered for %s.\n", activator)); + ACE_DEBUG((LM_DEBUG, "ImR Locator: Ignoring unregister activator:%s. Wrong token.\n", aname)); + return; } - return info.token; + + this->unregister_activator_i(aname); + ACE_CHECK; + + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activator %s unregistered.\n", aname)); } - else if (bind_return != 0) + else { - ACE_ASSERT(bind_return != 0); + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Ignoring unregister activator:%s. Unknown activator.\n", aname)); } +} + +void +ImR_Locator_i::unregister_activator_i(const char* aname) +{ + ACE_ASSERT(aname != 0); + int err = this->repository_.remove_activator (aname); + ACE_UNUSED_ARG(err); +} + +void +ImR_Locator_i::activate_server (const char* server ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)) +{ + // This is the version called by tao_imr to activate the server, manually + // starting it if necessary. + activate_server_by_name(server, true ACE_ENV_ARG_PARAMETER); +} - if (OPTIONS::instance()->debug() >= 1) +char* +ImR_Locator_i::activate_server_by_name (const char* name, bool manual_start ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)) +{ + // Activate the server, starting it if necessary. Don't start MANUAL + // servers unless manual_start=true + ACE_ASSERT(name != 0); + + Server_Info_Ptr info = this->repository_.get_server(name); + if (info.null()) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activator registered for %s.\n", activator)); + ACE_ERROR ((LM_ERROR, "ImR Locator: Cannot find info for server <%s>\n", name)); + ACE_THROW_RETURN(ImplementationRepository::NotFound (), 0); } - return info.token; + + return activate_server_i(*info, manual_start ACE_ENV_ARG_PARAMETER); } -// Remove a activator when it no longer wants to receive requests. -// object_ref is set to the removed activator. -void -ImR_Locator_i::unregister_activator (const char * activator, - CORBA::Long token - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) +char* +ImR_Locator_i::activate_server_i (Server_Info& info, bool manual_start ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)) { - ActivatorInfo info; - if (this->activator_map_.find (activator, info) == 0) + if (info.activation_mode == ImplementationRepository::PER_CLIENT && ! manual_start) + { + info.reset(); + } + + while(true) { - if (info.token != token && OPTIONS::instance()->debug() >= 1) + if (is_alive(info)) { - ACE_DEBUG((LM_DEBUG, "ImR Locator: Ignoring unregister activator:%s. Wrong token.\n", activator)); - return; + if (debug_ > 0) + { + ACE_DEBUG((LM_DEBUG, "ImR Locator: Successfully activated <%s> at \n\t%s\n", + info.name.c_str(), info.partial_ior.c_str())); + } + info.start_count = 0; + return CORBA::string_dup(info.partial_ior.c_str()); } - - int bind_return = this->activator_map_.unbind (activator, info); - ACE_UNUSED_ARG (bind_return); - ACE_ASSERT(bind_return == 0); - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activator %s unregistered.\n", activator)); - } - } - else - { - if (OPTIONS::instance()->debug() >= 1) + if (info.start_count >= info.start_limit) { - ACE_DEBUG((LM_DEBUG, "ImR Locator: Ignoring unregister activator:%s. Unknown activator.\n", activator)); + break; } + + ++info.start_count; + + // Note : If the activator is already in the process of starting a server, then + // this will simply block with the others currently waiting. + start_server(info, manual_start ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); } + + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Cannot Activate <%s>. Too many retries.\n", info.name.c_str())); + + ACE_THROW_RETURN (ImplementationRepository::CannotActivate + (CORBA::string_dup ("Too many retries.")), 0); +} + +char* +ImR_Locator_i::activate_server_by_object (const char* object_name ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)) +{ + ACE_ASSERT(object_name != 0); + + // We assume that the first part of the object name is the server name. + // So a name of foo/bar means that the server name is foo. + ACE_CString server_name(object_name); + ssize_t pos = server_name.find ('/'); + if (pos != ACE_CString::npos) + server_name = server_name.substr(pos + 1); + + return activate_server_by_name(server_name.c_str(), false ACE_ENV_ARG_PARAMETER); } -// Starts up the server <server> at all the activators where it is -// registered, if not already running. void -ImR_Locator_i::activate_server (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) +ImR_Locator_i::start_server(Server_Info& info, bool manual_start ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)) { - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activating server %s.\n", server)); - } + if (info.activation_mode == ImplementationRepository::MANUAL && ! manual_start) + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Cannot Activate MANUAL server <%s>.\n", info.name.c_str())); + ACE_THROW(ImplementationRepository::CannotActivate + (CORBA::string_dup ("MANUAL server."))); + } + if (info.cmdline.length() == 0) + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Cannot Activate server <%s>." + " No command line.\n", info.name.c_str())); + ACE_THROW(ImplementationRepository::CannotActivate + (CORBA::string_dup ("No command line registered for server."))); + } + + Activator_Info_Ptr ainfo = get_activator(info.activator); - ACE_CString activator; - if (this->server_map_.find(server, activator) == 0) + if (ainfo.null() || CORBA::is_nil(ainfo->activator.in())) { - this->activate_server_in_activator(server, activator.c_str()); - } - else + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Cannot Activate server <%s>. " + "Activator <%s> not found.\n", info.name.c_str(), info.activator.c_str())); + ACE_THROW(ImplementationRepository::CannotActivate + (CORBA::string_dup ("No activator registered for server."))); + } + + if (this->debug_ > 0) { - ACE_ERROR ((LM_ERROR, "ImR Locator: Couldn't find an activator for server:%s\n", server)); - ACE_THROW(ImplementationRepository::NotFound()); + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Starting server <%s>. Attempt %d/%d.\n", + info.name.c_str(), info.start_count, info.start_limit)); } -} -// Starts up the server <server> at one or more activators -// and returns the IOR of the activated server. -char * -ImR_Locator_i::activate_server_with_startup (const char *server, - int check_startup - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) -{ - if (OPTIONS::instance()->debug() >= 1) + ACE_TRY + { + ++ ainfo->waiting_clients; + ainfo->activator->start_server( + info.name.c_str(), + info.cmdline.c_str(), + info.dir.c_str(), + info.env_vars + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + -- ainfo->waiting_clients; + } + ACE_CATCH(CORBA::TIMEOUT, ex) + { + -- ainfo->waiting_clients; + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator : Timeout or error waiting for startup.\n")); + info.reset(); + } + ACE_CATCHANY { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activating server %s." - " Check startup=%d.\n", server, check_startup)); + -- ainfo->waiting_clients; + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "Exception during activator communication. Activator connection broken.\n")); + if (debug_ > 1) + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Locator_i::start_server()"); + ainfo->reset(); + info.reset(); } + ACE_ENDTRY; +} + +void +ImR_Locator_i::server_status_changed(Server_Info& info) +{ + Activator_Info_Ptr ainfo = get_activator(info.activator); - ACE_CString activator; - if (this->server_map_.find(server, activator) == 0) + if (! ainfo.null() + && ! CORBA::is_nil(ainfo->activator.in()) + && ainfo->waiting_clients > 0 + ) { - ImplementationRepository::Administration_var admin = - this->choose_activator (activator.c_str() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - char* partial_ior = admin->activate_server_with_startup (server, - check_startup ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - if (partial_ior != 0) { - return partial_ior; + ACE_TRY_NEW_ENV + { + ainfo->activator->server_status_changed(info.name.c_str() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; } - } - ACE_ERROR ((LM_ERROR, "ImR Locator: Couldn't find an activator for server:%s\n", server)); - ACE_THROW_RETURN (ImplementationRepository::NotFound(), 0); - return 0; + ACE_CATCHANY + { + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "Exception during activator communication. Activator connection broken.\n")); + if (debug_ > 1) + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Locator_i::server_status_changed()"); + ainfo->reset(); + } + ACE_ENDTRY; + } } - -// Starts up the server <server> if not already running in the -// specified activator. void -ImR_Locator_i::activate_server_in_activator (const char *server, - const char * activator - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)) +ImR_Locator_i::set_timeout_policy(CORBA::Object_ptr obj, const ACE_Time_Value& to) { - if (OPTIONS::instance()->debug() >= 1) + ACE_TRY_NEW_ENV + { + TimeBase::TimeT timeout; + ORBSVCS_Time::Time_Value_to_TimeT (timeout, to); + CORBA::Any tmp; + tmp <<= timeout; + + CORBA::PolicyList policies(1); + policies.length(1); + policies[0] = orb_->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE, tmp ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + obj->_set_policy_overrides (policies, CORBA::ADD_OVERRIDE ACE_ENV_ARG_PARAMETER); + } + ACE_CATCHANY { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Activating server" - " %s in activator %s.\n", server, activator)); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "ImR_Locator_i::set_timeout_policy()"); } - ImplementationRepository::Administration_var admin = - this->choose_activator (activator ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - admin->activate_server (server ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_ENDTRY; } -// Adds the server to the repository and registers the startup information -// about the server <server>. void -ImR_Locator_i::register_server (const char *server, +ImR_Locator_i::register_server (const char* server, const ImplementationRepository::StartupOptions &options ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, - -ImplementationRepository::AlreadyRegistered, + ImplementationRepository::AlreadyRegistered, ImplementationRepository::NotFound)) { - ACE_CString activator; - if (this->server_map_.find(server, activator) == 0) + 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_THROW(ImplementationRepository::AlreadyRegistered()); - return; + ACE_DEBUG((LM_DEBUG, "ImR Locator: Cannot register 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)); } - ImplementationRepository::Administration_var admin = - this->choose_activator (options.activator.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - admin->register_server (server, options ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - if (OPTIONS::instance()->debug() >= 1) + Server_Info_Ptr info = this->repository_.get_server(server); + if (info.null()) + { + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Adding server <%s>.\n", server)); + + this->repository_.add_server (server, + options.activator.in(), + options.command_line.in (), + options.environment, + options.working_directory.in (), + options.activation, + options.start_limit < 1 ? 1 : options.start_limit); + } + else if (! allow_updates) + { + ACE_ERROR ((LM_ERROR, + "ImR Locator: Server <%s> Already Registered!\n", server)); + ACE_THROW (ImplementationRepository::AlreadyRegistered()); + } + else + { + if (info->activator.length() > 0 && info->activator != options.activator.in()) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Registered server %s " - "in activator %s.\n", server, options.activator.in())); + ACE_ERROR ((LM_ERROR, + "ImR Locator: Server <%s> Already Registered with Activator <%s>\n", + server, info->activator.c_str())); + ACE_THROW (ImplementationRepository::AlreadyRegistered()); } - int bind_return = this->server_map_.bind (server, options.activator.in()); - ACE_UNUSED_ARG (bind_return); - ACE_ASSERT(bind_return == 0); + + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Updating server <%s>.\n", server)); + + info->activator = options.activator.in(); + info->cmdline = options.command_line.in(); + info->env_vars = options.environment; + info->dir = options.working_directory.in(); + info->activation_mode = options.activation; + info->start_limit = options.start_limit < 1 ? 1 : options.start_limit; + info->start_count = 0; + int err = this->repository_.update_server(*info); + ACE_ASSERT(err == 0); + ACE_UNUSED_ARG(err); + } + + if (this->debug_ > 1) + { + // Note : The info var may be null + ACE_DEBUG ((LM_DEBUG, "ImR_Locator_i::register_server_i:\nServer: %s\n" + "Activator: %s\n" + "Command Line: %s\n" + "Working Directory: %s\n" + "Activation: %s\n" + "Start Limit: %d\n" + "\n", + server, + options.activator.in(), + options.command_line.in (), + options.working_directory.in (), + ImR_Utils::activationModeToString(options.activation).c_str(), + options.start_limit + )); + + for (CORBA::ULong i = 0; i < options.environment.length(); ++i) + ACE_DEBUG ((LM_DEBUG, "Environment variable %s=%s\n", + options.environment[i].name.in(), + options.environment[i].value.in())); + } } -// Updates the startup information about the server <server>. -// Can not currently be used to move a server from one activator to another, -// this simply updates the registered info. void -ImR_Locator_i::reregister_server ( - const char *server, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL ) - ACE_THROW_SPEC ((CORBA::SystemException,ImplementationRepository::NotFound)) +ImR_Locator_i::remove_server (const char* name ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) { - ACE_CString activator; - if (this->server_map_.find(server, activator) != 0) + ACE_ASSERT(name != 0); + if (this->read_only_) { - ACE_THROW(ImplementationRepository::NotFound()); - } - if (activator.compare(options.activator.in()) != 0) - { - ACE_THROW(ImplementationRepository::NotFound()); + ACE_ERROR ((LM_ERROR, + "ImR Locator: Can't remove server <%s> due to locked database.\n", name)); + ACE_THROW (CORBA::NO_PERMISSION ( + CORBA::SystemException::_tao_minor_code (TAO_IMPLREPO_MINOR_CODE, 0), + CORBA::COMPLETED_NO)); } - ImplementationRepository::Administration_var admin = - this->choose_activator (activator.c_str() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + // Note : This will be safe, because any Server_Info_Ptr objects will still + // be valid, and the actual Server_Info will be destroyed when the last + // one goes out of scope. - if (OPTIONS::instance()->debug() >= 1) + Server_Info_Ptr info = this->repository_.get_server(name); + if (! info.null()) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Reregister server %s " - "in activator %s.\n", server, activator.c_str())); + server_status_changed(*info); + + if (this->repository_.remove_server (name) == 0) + { + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Removed Server <%s>.\n", name)); + } + } + else + { + ACE_ERROR ((LM_ERROR, + "ImR Locator: Can't remove unknown server <%s>.\n", name)); + ACE_THROW (ImplementationRepository::NotFound ()); } - admin->reregister_server (server, options ACE_ENV_ARG_PARAMETER); - ACE_CHECK; } -// Removes the server <server> from the repository. void -ImR_Locator_i::remove_server (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) +ImR_Locator_i::shutdown_server (const char* server ACE_ENV_ARG_DECL) +ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) { - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Remove server %s.\n", server)); - } - ACE_CString activator; - if (this->server_map_.find(server, activator) == 0) + ACE_ASSERT(server != 0); + + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Shutting down server <%s>.\n", server)); + + Server_Info_Ptr info = this->repository_.get_server(server); + if (info.null()) { - this->remove_server_in_activator(server, activator.c_str()); - } - else + ACE_ERROR ((LM_ERROR, + "ImR Locator: shutdown_server() Cannot find info for server <%s>\n", server)); + ACE_THROW(ImplementationRepository::NotFound()); + } + + connect_server(*info); + + if (CORBA::is_nil(info->server.in())) { - ACE_ERROR ((LM_ERROR, "ImR Locator: Couldn't find an activator for server:%s\n", server)); + ACE_ERROR ((LM_ERROR, + "ImR Locator: shutdown_server() Cannot connect to server <%s>\n", server)); ACE_THROW(ImplementationRepository::NotFound()); } -} -// Removes the server <server> from the repository. -void -ImR_Locator_i::remove_server_in_activator (const char *server, - const char *activator - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound - )) -{ - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Remove server %s " - "from activator %s.\n", server, activator)); - } - ACE_CString registered_activator; - if (this->server_map_.find(server, registered_activator) != 0) + ACE_TRY_NEW_ENV { - ACE_THROW(ImplementationRepository::NotFound()); // todo : Add to signature in pidl and others + ImplementationRepository::ServerObject_var server = info->server; + server->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; } - if (registered_activator.compare(activator) != 0) + ACE_CATCHANY { - ACE_ASSERT(false); + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Exception ignored while shutting down <%s>\n", server)); } + ACE_ENDTRY; - ImplementationRepository::Administration_var admin = - this->choose_activator (activator ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - admin->remove_server (server ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - int err = this->server_map_.unbind(server); - ACE_UNUSED_ARG (err); + info->reset(); + + int err = this->repository_.update_server(*info); ACE_ASSERT(err == 0); + ACE_UNUSED_ARG(err); + + server_status_changed(*info); } -// Attempts to gracefully shut down the server, at all activators that -// it is running. void -ImR_Locator_i::shutdown_server (const char *server ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) +ImR_Locator_i::server_is_running (const char* name, + const char* partial_ior, + ImplementationRepository::ServerObject_ptr server + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound)) { - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Shutdown server %s.\n", server)); - } - ACE_CString activator; - if (this->server_map_.find(server, activator) == 0) + ACE_ASSERT(name != 0); + ACE_ASSERT(partial_ior != 0); + ACE_ASSERT(! CORBA::is_nil(server)); + + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Server %s is running at %s.\n", name, partial_ior)); + + set_timeout_policy(server, DEFAULT_SERVER_TIMEOUT); + + CORBA::String_var ior = orb_->object_to_string (server ACE_ENV_ARG_PARAMETER); + + Server_Info_Ptr info = this->repository_.get_server(name); + if (info.null()) { - this->shutdown_server_in_activator(server, activator.c_str()); - } - else + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Auto adding NORMAL server:<%s>\n", name)); + + ImplementationRepository::EnvironmentList env(0); + this->repository_.add_server (name, + "", // no activator + "", // no cmdline + ImplementationRepository::EnvironmentList(), + "", // no working dir + ImplementationRepository::NORMAL, + DEFAULT_START_LIMIT, + partial_ior, + ior.in(), + server + ); + } + else { - ACE_ERROR ((LM_ERROR, "ImR Locator: Couldn't find an activator for server:%s\n", server)); - ACE_THROW(ImplementationRepository::NotFound()); + info->ior = ior.in(); + info->partial_ior = partial_ior; + info->server = ImplementationRepository::ServerObject::_duplicate(server); + + int err = this->repository_.update_server(*info); + ACE_ASSERT(err == 0); + ACE_UNUSED_ARG(err); + + // Temporarily disable this optimization since it only works on Windows, due to root poa lock + // being held in the server, preventing us from calling back to the server from within this call. + //is_alive(*info); // We don't really care if it is or not, we just want to cache the result. + +#if !defined (ACE_HAS_RECURSIVE_MUTEXES) + // Schedule a timer to call server_status_changed() on this + // ImR_Locator_i. Due to locking problems within the POA, we need to + // do this after we return from this method. Status_Changed_Timer is + // allocated on the heap here, but is deleted within the + // handle_timeout() call. + Status_Changed_Timer* sct; + ACE_NEW_THROW_EX (sct, + Status_Changed_Timer (this, info), + CORBA::NO_MEMORY ()); + + ACE_Time_Value delay(0, 10000); + this->orb_->orb_core()->reactor()->schedule_timer (sct, 0, delay); +#else + server_status_changed(*info); +#endif /* ACE_HAS_RECURSIVE_MUTEXES */ } } -// Attempts to gracefully shut down the server, void -ImR_Locator_i::shutdown_server_in_activator ( - const char *server, - const char *activator - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) -{ - ImplementationRepository::Administration_var admin = - this->choose_activator (activator ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - if (OPTIONS::instance()->debug() >= 1) +ImR_Locator_i::server_is_shutting_down (const char* server ACE_ENV_ARG_DECL_NOT_USED) +ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) +{ + ACE_ASSERT(server != 0); + Server_Info_Ptr info = this->repository_.get_server(server); + if (info.null()) + { + if (this->debug_ > 1) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Shutdown server %s " - "in activator %s.\n", server, activator)); + ACE_DEBUG((LM_DEBUG, + "ImR_Locator_i::server_is_shutting_down: Unknown server:%s\n", server)); } - admin->shutdown_server (server ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} + return; + } -void -ImR_Locator_i::server_is_running (const char *, - const char *, - ImplementationRepository::ServerObject_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound)) -{ - ACE_ERROR((LM_ERROR, "ImR_Locator_i::server_is_running() " - "This operation is only for the ImR_Activator.\n")); - ACE_ASSERT(false); -} + if (this->debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: server <%s> is shutting down.\n", server)); -void -ImR_Locator_i::server_is_running_in_activator (const char* server, - const char* activator, - const char* partial_ior, - ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) -{ - // todo : At this point we could automatically register the server, so that - // manually started servers don't require tao_imr add first. - ImplementationRepository::Administration_var admin = - this->choose_activator (activator ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Server %s " - "running in activator %s.\n", server, activator)); - } - admin->server_is_running (server, partial_ior, server_object ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} + info->reset(); -void -ImR_Locator_i::server_is_shutting_down (const char* ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) -{ - ACE_ERROR((LM_ERROR, "ImR_Locator_i::server_is_shutting_down()" - " This operation is only for the ImR_Activator.\n")); - ACE_ASSERT(false); -} + int err = this->repository_.update_server(*info); + ACE_ASSERT(err == 0); + ACE_UNUSED_ARG(err); -// What the server should call before it shuts down. -void -ImR_Locator_i::server_is_shutting_down_in_activator ( - const char *server, - const char *activator - ACE_ENV_ARG_DECL - ) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) -{ - ImplementationRepository::Administration_var admin = - this->choose_activator (activator ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Server %s " - "shutting down in activator %s.\n", server, activator)); - } - admin->server_is_shutting_down (server ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + server_status_changed(*info); } -// Find void -ImR_Locator_i::find ( - const char * server, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) +ImR_Locator_i::find (const char* server, + ImplementationRepository::ServerInformation_out imr_info + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) { - ACE_CString activator; - if (this->server_map_.find(server, activator) == 0) - { - this->find_in_activator(server, activator.c_str(), info); - } - else + 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()) { - ACE_ERROR ((LM_ERROR, "ImR Locator: Couldn't find an activator for server:%s\n", server)); + ACE_ERROR ((LM_ERROR, + "ImR Locator: Cannot find info for server <%s>\n", + server)); ACE_THROW(ImplementationRepository::NotFound()); } -} -void -ImR_Locator_i::find_in_activator ( - const char* server, - const char* activator, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) -{ - ImplementationRepository::Administration_var admin = - this->choose_activator (activator ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - if (OPTIONS::instance()->debug() >= 1) - { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Find server %s " - "in activator %s.\n", server, activator)); - } - admin->find(server, info ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + imr_info = info->createImRServerInfo(ACE_ENV_SINGLE_ARG_PARAMETER); + + if (this->debug_ > 0) + ACE_DEBUG ((LM_DEBUG, "ImR Locator: Found server %s.\n", server)); } -// Used to access the list of servers registered. May also return an -// iterator which can be used to access more than <how_many> of them. void ImR_Locator_i::list (CORBA::ULong how_many, ImplementationRepository::ServerInformationList_out server_list, @@ -708,158 +892,364 @@ ImR_Locator_i::list (CORBA::ULong how_many, ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::SystemException)) { - if (OPTIONS::instance()->debug() >= 1) - { + if (this->debug_ > 0) ACE_DEBUG ((LM_DEBUG, "ImR Locator: List servers.\n")); + + // Initialize the out variables, so if we return early, they will + // not be dangling. + server_iterator = ImplementationRepository::ServerInformationIterator::_nil(); + ACE_NEW_THROW_EX (server_list, + ImplementationRepository::ServerInformationList(0), CORBA::NO_MEMORY()); + + Locator_Repository::SIMap::ENTRY* entry = 0; + Locator_Repository::SIMap::ITERATOR it(this->repository_.servers()); + + // Number of servers that will go into the server_list. + CORBA::ULong n = this->repository_.servers().current_size(); + if (how_many > 0 && n > how_many) + { + n = how_many; } - ActivatorMap::ENTRY *next_entry = 0; - int cnt = 0; - for (ActivatorMap::ITERATOR iterator (this->activator_map_); - iterator.next (next_entry) != 0; - iterator.advance ()) + server_list->length(n); + + if (this->debug_ > 1) + ACE_DEBUG ((LM_DEBUG, "ImR_Locator_i::list: Filling ServerList with %d servers\n", n)); + + for (CORBA::ULong i = 0; i < n; i++) { - ImplementationRepository::Administration_ptr admin = next_entry->int_id_.admin.in(); - ++cnt; - // todo : Check to make sure activator implementation supports repeat calls correctly. - admin->list (how_many, - server_list, - server_iterator - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + it.next(entry); + it.advance(); + ACE_ASSERT(entry != 0); + + Server_Info_Ptr info = entry->int_id_; + + ImplementationRepository::ServerInformation_var imr_info = info->createImRServerInfo(ACE_ENV_SINGLE_ARG_PARAMETER); + server_list[i] = *imr_info; } - if (cnt <= 0) + if (this->repository_.servers().current_size() > n) { - // Temporary fix for the seg fault that occurs when the skel tries to - // handle the unitialised sequence when this method is called and - // no activator has been registered yet. - // @todo A full rework of this method is needed - see bug #1543. - server_iterator = - ImplementationRepository::ServerInformationIterator::_nil (); - ACE_NEW_THROW_EX (server_list, - ImplementationRepository::ServerInformationList (0), + if (this->debug_ > 1) + ACE_DEBUG ((LM_DEBUG, "ImR_Locator_i::list: Creating ServerInformation Iterator\n")); + + ImR_Iterator* imr_iter; + + ACE_NEW_THROW_EX (imr_iter, + ImR_Iterator (n, this->repository_, this->imr_poa_.in()), CORBA::NO_MEMORY ()); + + PortableServer::ServantBase_var tmp(imr_iter); + + ACE_TRY + { + PortableServer::ObjectId_var id = + this->imr_poa_->activate_object (imr_iter ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + 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); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK; } } -ImplementationRepository::Administration_ptr -ImR_Locator_i::choose_activator (const char *activator ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((ImplementationRepository::NotFound, CORBA::SystemException)) +Activator_Info_Ptr +ImR_Locator_i::get_activator (const ACE_CString& aname) { - ActivatorInfo info; - if (this->activator_map_.find (activator, info) != 0) + Activator_Info_Ptr info = this->repository_.get_activator (aname); + if (! info.null()) + { + this->connect_activator (*info); + } + return info; +} + +void +ImR_Locator_i::connect_activator (Activator_Info& info) +{ + if (! CORBA::is_nil(info.activator.in()) || info.ior.length() == 0) + return; + + ACE_TRY_NEW_ENV + { + CORBA::Object_var obj = + this->orb_->string_to_object (info.ior.c_str() + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil(obj.in())) { - ACE_THROW_RETURN (ImplementationRepository::NotFound (), 0); + info.reset(); + return; } - return info.admin._retn(); + + info.activator = + ImplementationRepository::Activator::_narrow (obj.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil(info.activator.in())) + { + info.reset(); + return; + } + + set_timeout_policy(info.activator.in(), startup_timeout_); + + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Locator: reconnected to activator <%s>\n", info.name.c_str())); + } + ACE_CATCHANY + { + info.reset(); + } + ACE_ENDTRY; } -char * -ImR_Locator_i::find_ior (const char *object_name ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)) +void +ImR_Locator_i::auto_start_servers(ACE_ENV_SINGLE_ARG_DECL) { - if (OPTIONS::instance()->debug() >= 1) + if (this->repository_.servers().current_size() == 0) + return; + + Locator_Repository::SIMap::ENTRY* server_entry; + Locator_Repository::SIMap::ITERATOR server_iter(this->repository_.servers()); + + // For each of the entries in the Locator_Repository, get the startup + // information and activate the servers, if they are not already + // running. + for (;server_iter.next(server_entry) != 0; server_iter.advance()) + { + Server_Info_Ptr info = server_entry->int_id_; + ACE_ASSERT(! info.null()); + + ACE_TRY + { + if (info->activation_mode == ImplementationRepository::AUTO_START + && info->cmdline.length() > 0) + { + this->activate_server_i (*info, true ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + } + ACE_CATCHANY { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Find ior %s.\n", object_name)); + if (this->debug_ > 1) + { + ACE_DEBUG ((LM_DEBUG, + "ImR_Locator_i::run: AUTO_START Could not activate <%s>\n", + server_entry->ext_id_.c_str ())); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "AUTO_START"); + } + // Ignore exceptions } + ACE_ENDTRY; + ACE_CHECK; + } +} + +void +ImR_Locator_i::connect_server(Server_Info& info) +{ + if (! CORBA::is_nil(info.server.in()) || info.ior.length() == 0) + return; + + ACE_TRY_NEW_ENV + { + CORBA::Object_var obj = orb_->string_to_object (info.ior.c_str() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - ActivatorMap::ENTRY *next_entry = 0; - - for (ActivatorMap::ITERATOR iterator (this->activator_map_); - iterator.next (next_entry) != 0; - iterator.advance ()) + if (CORBA::is_nil(obj.in())) { - ImplementationRepository::Administration_ptr admin = next_entry->int_id_.admin.in(); - ACE_TRY - { - char* ior = admin->find_ior (object_name ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + info.reset(); + return; + } - return ior; - } - ACE_CATCH (ImplementationRepository::NotFound, ex) - { - ACE_UNUSED_ARG(ex); - } - ACE_ENDTRY; + info.server = + ImplementationRepository::ServerObject::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (CORBA::is_nil(info.server.in())) + { + info.reset(); + return; } - - ACE_ERROR ((LM_ERROR, "ImR Locator: Couldn't find an activator for object:%s\n", object_name)); - ACE_THROW_RETURN (ImplementationRepository::NotFound (), 0); - return 0; + + set_timeout_policy(info.server.in(), DEFAULT_SERVER_TIMEOUT); + + if (debug_) + ACE_DEBUG((LM_DEBUG, "ImR Locator: Reconnected server <%s>\n", info.name.c_str())); + } + ACE_CATCHANY + { + info.reset(); + } + ACE_ENDTRY; +} + +bool +ImR_Locator_i::is_alive(Server_Info& info) +{ + for (int i = 0; i < IS_ALIVE_RETRY_COUNT; ++i) + { + int status = this->is_alive_i(info); + if (status == 0) + return false; + if (status == 1) + return true; + + // This is evil, but there's not much else we can do for now. We should never + // reach this code once the ImR Servers are fixed so that they don't lie about + // server_is_running. Currently, they send this notification during poa creation. + // We have to run the orb, because the very thing that may be slowing the + // aliveness of the servers is the fact that they're trying to register more + // objects with us. + ACE_Time_Value tv = IS_ALIVE_RETRY_INTERVAL; + this->orb_->run(tv); + } + if (debug_ > 0) + { + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> is_alive() retry count exceeded. alive=false.\n", info.name.c_str())); + } + // We return true here, because the server *might* be alive, it's just not starting in a timely + // manner. We can't return false, because then we'll just try to start another instance, and the + // same thing will likely happen. + info.last_ping = ACE_OS::gettimeofday(); + return true; } -void ImR_Locator_i::shutdown_repo (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ( (CORBA::SystemException) ) +int +ImR_Locator_i::is_alive_i(Server_Info& info) { - if (OPTIONS::instance()->debug() >= 1) + // This is used by the ACE_TRY below when exceptions are turned off. + ACE_DECLARE_NEW_CORBA_ENV; + + if (info.ior.length() == 0 || info.partial_ior.length() == 0) + { + if (debug_ > 1) + { + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> not running. alive=false.\n", info.name.c_str())); + } + info.last_ping = ACE_Time_Value::zero; + return 0; + } + + if (ping_interval_ == ACE_Time_Value::zero) + { + if (debug_ > 1) + { + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Ping verification disabled. alive=true.\n", info.name.c_str())); + } + return 1; + } + + if (ACE_OS::gettimeofday() - info.last_ping < ping_interval_) + { + if (debug_ > 1) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Shutting down repository\n")); + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> within ping interval. alive=true.\n", info.name.c_str())); } + return 1; + } + + connect_server(info); - ActivatorMap::ENTRY *next_entry = 0; - - for (ActivatorMap::ITERATOR iterator (this->activator_map_); - iterator.next (next_entry) != 0; - iterator.advance ()) + if (CORBA::is_nil (info.server.in())) + { + if (debug_ > 1) { - ImplementationRepository::Administration_ptr admin_ref = next_entry->int_id_.admin.in();; + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Could not connect. alive=false.\n", info.name.c_str())); + } + return 0; + } + + ACE_TRY + { + // Make a copy, in case the info is updated during the ping. + ImplementationRepository::ServerObject_var server = info.server; + + // This will timeout if it takes too long + server->ping (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; - ACE_TRY + if (debug_ > 1) + { + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Ping successfull. alive=true\n", info.name.c_str())); + } + info.last_ping = ACE_OS::gettimeofday(); + } + ACE_CATCH(CORBA::TRANSIENT, ex) + { + const CORBA::ULong BITS_5_THRU_12_MASK = 0x00000f80; + switch (ex.minor() & BITS_5_THRU_12_MASK) + { + case TAO_INVOCATION_SEND_REQUEST_MINOR_CODE: + { + if (debug_ > 1) { - admin_ref->shutdown_repo (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Local TRANSIENT. alive=false.\n", info.name.c_str())); } - ACE_CATCH (ImplementationRepository::NotFound, ex) + } + info.last_ping = ACE_Time_Value::zero; + return 0; + case TAO_POA_DISCARDING: + case TAO_POA_HOLDING: + { + if (debug_ > 1) { - ACE_UNUSED_ARG(ex); + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Remote TRANSIENT. alive=maybe.\n", info.name.c_str())); } - ACE_ENDTRY; + } + return -1; // We keep trying to ping, because returning 1 now, would just lead + // to clients getting the same exception. If we can't ping after several + // attempts, then we'll give up and return 1, letting the client worry about it. + default: + ACE_ERROR ((LM_ERROR, + "ImR_Activator_i::is_alive(): <%s> unexpected TRANSIENT minor code (%d). alive=false\n", + info.name.c_str(), ex.minor())); + info.last_ping = ACE_Time_Value::zero; + return 0; + } + } + ACE_CATCH(CORBA::TIMEOUT, ex) + { + if (debug_ > 1) + { + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Ping timed out. alive=true.\n", info.name.c_str())); + } + return -1; // See above. + } + ACE_CATCHANY + { + if (debug_ > 1) + { + ACE_DEBUG((LM_DEBUG, + "ImR Locator: <%s> Ping exception. alive=false.\n")); } - - // Finally shutdown the ORB. - // - orb_->shutdown (0) ; + info.last_ping = ACE_Time_Value::zero; + return false; + } + ACE_ENDTRY; + return 1; } #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Hash_Map_Manager<ACE_CString, ActivatorInfo, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator<ACE_CString, ActivatorInfo, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Entry<ACE_CString, ActivatorInfo>; -template class ACE_Hash_Map_Reverse_Iterator<ACE_CString, ActivatorInfo, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; - -template class ACE_Hash_Map_Manager<ACE_CString, ACE_CString, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator<ACE_CString, ACE_CString, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Entry<ACE_CString, ACE_CString>; -template class ACE_Hash_Map_Reverse_Iterator<ACE_CString, ACE_CString, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; - #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString,ActivatorInfo,ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator<ACE_CString,ActivatorInfo,ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, ActivatorInfo> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<ACE_CString, ActivatorInfo, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ActivatorInfo, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> - -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString,ACE_CString,ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator<ACE_CString,ACE_CString,ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, ACE_CString> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<ACE_CString, ACE_CString, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION*/ diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h index 5f7ea07d604..61eeb883c33 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h @@ -4,212 +4,178 @@ #define IMR_LOCATOR_I_H #include /**/ "ace/pre.h" -#include "tao/PortableServer/ImR_LocatorS.h" -#include "tao/IORTable/IORTable.h" +#include "locator_export.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Null_Mutex.h" -#include "ace/SString.h" +#include "Adapter_Activator.h" +#include "Forwarder.h" +#include "INS_Locator.h" +#include "Locator_Options.h" +#include "Locator_Repository.h" -class ACE_Reactor; - -struct ActivatorInfo { - CORBA::Long token; // A unique token is assigned at registration - ImplementationRepository::Administration_var admin; -}; +#include "orbsvcs/orbsvcs/IOR_Multicast.h" -// Look up activator information by activator name. -typedef ACE_Hash_Map_Manager_Ex <ACE_CString, - ActivatorInfo, - ACE_Hash<ACE_CString>, - ACE_Equal_To<ACE_CString>, - ACE_Null_Mutex> ActivatorMap; +#include "ImR_LocatorS.h" -// Look up activator name by server name. (where the server name is the name of a poa -// registered in the call to server_is_running().) -typedef ACE_Hash_Map_Manager_Ex <ACE_CString, - ACE_CString, - ACE_Hash<ACE_CString>, - ACE_Equal_To<ACE_CString>, - ACE_Null_Mutex> ServerMap; - -class ImR_Adapter_Activator; -class ImR_Forwarder; +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ +class ACE_Reactor; // Gets a request from a client and depending on the POA name, // requests an activator to take care of activating the // corresponding server and raises a forward exception to the // client pointing to the correct server. -class ImR_Locator_i : public virtual POA_ImplementationRepository::Locator +class Locator_Export ImR_Locator_i : public virtual POA_ImplementationRepository::Locator { +public: + ImR_Locator_i(); - public: + /// Initialize the service, creating its own orb, poa, etc. + int init (Options& opts ACE_ENV_ARG_DECL); - ImR_Locator_i (); + /// Same as above, but use the given orb + int init_with_orb (CORBA::ORB_ptr orb, Options& opts ACE_ENV_ARG_DECL); - // Initialize and gets the ImR_Locator running and ready to accept - // requests. - int init (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS); + /// Cleans up any state created by init*. + int fini (ACE_ENV_SINGLE_ARG_DECL); - // Register an activator with the locator. - // Returns a token that must be used when unregistering. - virtual CORBA::Long register_activator (const char *activator, - ImplementationRepository::Administration_ptr admin, - const ImplementationRepository::Locator::ServerNameList & servers - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); + /// Run using the orb reference created during init() + int run (ACE_ENV_SINGLE_ARG_DECL); + + // Note : See the IDL for descriptions of the operations. + + // Activator->Locator - // UnRegister an activator with the locator. - virtual void unregister_activator (const char *activator, - CORBA::Long token ACE_ENV_ARG_DECL_WITH_DEFAULTS) + virtual CORBA::Long register_activator (const char* name, + ImplementationRepository::Activator_ptr admin + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual void unregister_activator (const char* name, + CORBA::Long token ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); - // Starts up the server <server> if not already running. - virtual void activate_server (const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)); + // tao_imr->Locator - // Starts up the server <server> if not already running. - virtual void activate_server_in_activator (const char *server, - const char *activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + virtual void activate_server (const char * name + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)); - - // Adds the server to the repository and registers the startup information - // about the server <server>. - 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)); - - // Updates the startup information about the server <server>. - virtual void reregister_server (const char *server, - const ImplementationRepository::StartupOptions &options - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException,ImplementationRepository::NotFound )); - - // Removes the server <server> from the repository. - virtual void remove_server (const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - - // Removes the server <server> from the repository. - virtual void remove_server_in_activator (const char *server, - const char *activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + 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) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - - // Attempts to gracefully shut down the server, - virtual void shutdown_server (const char *server - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + virtual void shutdown_server (const char * name + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - - // Attempts to gracefully shut down the server <server> in activator - // <activator> - virtual void shutdown_server_in_activator (const char *server, - const char *activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + virtual void find (const char * name, + ImplementationRepository::ServerInformation_out info + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - - // Shuts down the repository. - virtual void shutdown_repo (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + virtual void list ( + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + ImplementationRepository::ServerInformationIterator_out server_iterator + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); - // Invoked by the server to update transient information such as current - // activator of the <server> and its ServerObject. - virtual void server_is_running_in_activator (const char *server, - const char* activator, - const char* partial_ior, - ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); + // Server->Locator - // This version should only be used by the activator. - virtual void server_is_running (const char* server, - const char* partial_ior, - ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + virtual void server_is_running (const char* name, + const char* partial_ior, + ImplementationRepository::ServerObject_ptr server_object + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - - // Only used by activator. - virtual void server_is_shutting_down (const char *server ACE_ENV_ARG_DECL_WITH_DEFAULTS) + virtual void server_is_shutting_down (const char * name ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); - // What the server <server> should call before it shuts down from - // activator <activator> - virtual void server_is_shutting_down_in_activator (const char *server, - const char *activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); + // Used by the INS_Locator to start a sever given an object name + char* activate_server_by_object (const char* object_name ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)); - /// IOR_LookupTable_Callback method helper. Will return an IOR - char *find_ior (const char* object_name ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); + char* activate_server_by_name (const char * name, bool manual_start ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)); - virtual void find (const char *server, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); + void server_status_changed(Server_Info& info); - // Returns the startup information for a server - virtual void find_in_activator (const char *server, - const char* activator, - ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, ImplementationRepository::NotFound)); +private: - // Used to access the list of servers registered. May also return an - // iterator which can be used to access more than <how_many> of them. - virtual void list ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); + char* activate_server_i (Server_Info& info, bool manual_start ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)); + + void start_server(Server_Info& info, bool manual_start ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ImplementationRepository::NotFound, + ImplementationRepository::CannotActivate)); - // Starts up the server <server> on one or more activators. - // Returns a partial ior for the server that is missing only the ObjectKey. - char *activate_server_with_startup (const char *server, - int check_startup - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + void register_server_i (const char * name, + const ImplementationRepository::StartupOptions &options, + bool allow_updates + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, - ImplementationRepository::NotFound, - ImplementationRepository::CannotActivate)); - private: + 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); - // As the name suggests, this methods helps choose the activator - // based on the activator passed. - ImplementationRepository::Administration_ptr - choose_activator(const char *activator ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((ImplementationRepository::NotFound, CORBA::SystemException)); + void unregister_activator_i(const char* activator); + + Activator_Info_Ptr get_activator (const ACE_CString& name); + void connect_activator (Activator_Info& info); + + void auto_start_servers(ACE_ENV_SINGLE_ARG_DECL); + + void set_timeout_policy(CORBA::Object_ptr obj, const ACE_Time_Value& to); - // Table that maintains the activator to Object Reference of the - // Activator running in that activator. - ActivatorMap activator_map_; - ServerMap server_map_; + void connect_server(Server_Info& info); + +private: // The class that handles the forwarding. - ImR_Forwarder *forwarder_impl_; + ImR_Forwarder forwarder_; // Used for the forwarding of any type of POA. - ImR_Adapter_Activator *activator_; + ImR_Adapter adapter_; /// The locator interface for the IORTable - IORTable::Locator_var ins_locator_; + INS_Locator ins_locator_; + + CORBA::ORB_var orb_; + PortableServer::POA_var root_poa_; + PortableServer::POA_var imr_poa_; + + int debug_; + + TAO_IOR_Multicast ior_multicast_; + + Locator_Repository repository_; - // The ORB. - CORBA::ORB_var orb_ ; + bool read_only_; + ACE_Time_Value startup_timeout_; + ACE_Time_Value ping_interval_; }; #include /**/ "ace/post.h" diff --git a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc index 39f5d0f11fb..2cc8f9adcd7 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc +++ b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc @@ -1,41 +1,126 @@ // $Id$ -project(ImR_Locator) : orbsvcsexe, core, acexml, minimum_corba, svc_utils, iortable, strategies { - exename = ImplRepo_Service +project(ImR_Activator_IDL) : orbsvcslib, portableserver, messaging { + sharedname = TAO_ImR_Activator_IDL + dynamicflags = ACTIVATOR_IDL_BUILD_DLL + after += TAO_Valuetype + libs += TAO_Valuetype + idlflags += -GH -Wb,export_macro=ActivatorIDL_Export -Wb,export_include=activator_idl_export.h + idl_files { + ImR_Activator.idl + } + source_files { + ImR_ActivatorS.cpp + ImR_ActivatorC.cpp + } + header_files { + activator_idl_export.h + } +} + +project(ImR_Locator_IDL) : orbsvcslib, portableserver { + sharedname = TAO_ImR_Locator_IDL + after += ImR_Activator_IDL TAO_Valuetype + libs += TAO_ImR_Activator_IDL TAO_Valuetype + dynamicflags = LOCATOR_IDL_BUILD_DLL + idlflags += -Wb,export_macro=LocatorIDL_Export -Wb,export_include=locator_idl_export.h + idl_files { + ImR_Locator.idl + } + source_files { + ImR_LocatorS.cpp + ImR_LocatorC.cpp + } + header_files { + locator_idl_export.h + } +} + +project(ImR_Activator) : orbsvcslib, core, acexml, minimum_corba, portableserver { + sharedname = TAO_ImR_Activator + dynamicflags = ACTIVATOR_BUILD_DLL + after += ImR_Activator_IDL ImR_Locator_IDL + libs += TAO_ImR_Activator_IDL TAO_ImR_Locator_IDL Source_Files { + ImR_Activator_i.cpp + Activator_Options.cpp + Activator_Loader.cpp + } + header_files { + activator_export.h + } + idl_files { + } +} + +project(ImR_Locator) : orbsvcslib, core, minimum_corba, iortable, portableserver, messaging, svc_utils, acexml { + sharedname = TAO_ImR_Locator + dynamicflags = LOCATOR_BUILD_DLL + after += ImR_Locator_IDL ImR_Activator_IDL + libs += TAO_ImR_Locator_IDL TAO_ImR_Activator_IDL + Source_Files { + Activator_Info.cpp Adapter_Activator.cpp Forwarder.cpp - ImR_Locator.cpp ImR_Locator_i.cpp - Locator_NT_Service.cpp - Locator_Options.cpp INS_Locator.cpp + Locator_XMLHandler.cpp + Locator_Loader.cpp + Locator_Options.cpp + Iterator.cpp + Server_Info.cpp + Locator_Repository.cpp + } + header_files { + utils.h + locator_export.h + } + idl_files { } } +project(ImR_Locator_Service) : orbsvcsexe, core, minimum_corba, iortable, messaging, acexml ,svc_utils { + exename = ImplRepo_Service + after += ImR_Locator ImR_Activator_IDL ImR_Locator_IDL + libs += TAO_ImR_Locator TAO_ImR_Activator_IDL TAO_ImR_Locator_IDL + + // Static Debug builds on Windows will not link properly due + // to a linker bug. It complains that the ACEXML library duplicates + // a couple of template instantiations from the TAO_ImR_Locator library. + // This option works around that bug. Unfortunately, there is no way to + // narrow the options down to only static debug builds. + specific(em3, nmake, vc6, vc71) { + link_options += /FORCE:MULTIPLE + } -project(ImR_Activator) : orbsvcsexe, core, acexml, minimum_corba, svc_utils, iortable, strategies { + Source_Files { + ImR_Locator.cpp + Locator_NT_Service.cpp + } + idl_files { + } +} + + +project(ImR_Activator_Service) : orbsvcsexe, core, acexml, minimum_corba, svc_utils { exename = ImR_Activator + after += ImR_Activator ImR_Activator_IDL ImR_Locator_IDL + libs += TAO_ImR_Activator TAO_ImR_Activator_IDL TAO_ImR_Locator_IDL Source_Files { ImR_Activator.cpp - ImR_Activator_i.cpp - Iterator.cpp - Activator_Options.cpp - Server_Info.cpp - Server_Repository.cpp - Repository_Configuration.cpp - XML_ContentHandler.cpp Activator_NT_Service.cpp } + idl_files { + } } -project(tao_imr) : orbsvcsexe, core, acexml, minimum_corba, svc_utils, iortable { +project(tao_imr) : orbsvcsexe, core, minimum_corba, portableserver { exename = tao_imr install = $(ACE_ROOT)/bin Source_Files { tao_imr.cpp tao_imr_i.cpp } + idl_files { + } } - - diff --git a/TAO/orbsvcs/ImplRepo_Service/Iterator.cpp b/TAO/orbsvcs/ImplRepo_Service/Iterator.cpp index 59fcb5b6a10..4afae0cfc76 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Iterator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Iterator.cpp @@ -12,24 +12,14 @@ #include "Iterator.h" -ImR_Iterator::ImR_Iterator (Server_Repository::HASH_IMR_MAP::ITERATOR *iterator, - PortableServer::POA_ptr poa) - : iterator_ (iterator), - poa_ (poa) +ImR_Iterator::ImR_Iterator (CORBA::ULong n, Locator_Repository& repo, PortableServer::POA_ptr poa) + : repo_(repo) + , count_(n) + , poa_(poa) { - // Nothing } -ImR_Iterator::~ImR_Iterator () -{ - delete iterator_; -} - - -// Returns the next list of up to <how_many> servers. If empty, will return -// false. - CORBA::Boolean ImR_Iterator::next_n (CORBA::ULong how_many, ImplementationRepository::ServerInformationList_out server_list @@ -37,61 +27,65 @@ ImR_Iterator::next_n (CORBA::ULong how_many, ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_NEW_THROW_EX (server_list, - ImplementationRepository::ServerInformationList (0), - CORBA::NO_MEMORY ()); - - // If there are no more bindings... - if (this->iterator_->done ()) - return 0; // Return false - - // Initially assume that iterator has the requested number of - // bindings. - server_list->length (how_many); - - Server_Repository::HASH_IMR_MAP::ENTRY *server_entry; - - // Iterate and populate the BindingList. - - for (CORBA::ULong i = 0; i < how_many; i++) - { - this->iterator_->next (server_entry); - - ACE_CString logical, server, command_line, working_directory, location, server_ior; - ImplementationRepository::EnvironmentList environment_vars; - ImplementationRepository::ActivationMode activation = - ImplementationRepository::NORMAL; - - server_entry->int_id_->get_running_info (location, server_ior); - server_entry->int_id_->get_startup_info (logical, - command_line, - environment_vars, - working_directory, - activation); - - server_list[i].logical_server = CORBA::string_dup (logical.c_str ()); - server_list[i].server = CORBA::string_dup (server_entry->ext_id_.c_str ()); - server_list[i].startup.command_line = CORBA::string_dup (command_line.c_str ()); - server_list[i].startup.environment = environment_vars; - server_list[i].startup.working_directory = CORBA::string_dup (working_directory.c_str ()); - server_list[i].startup.activation = activation; - server_list[i].location = CORBA::string_dup (location.c_str ()); - - if (this->iterator_->advance () == 0) - { - // If no more servers left, reset length to the actual - // number servers and get out of the loop. - server_list->length (i + 1); - break; - } - } + ImplementationRepository::ServerInformationList(0), CORBA::NO_MEMORY()); + + Locator_Repository::SIMap::ENTRY* entry = 0; + Locator_Repository::SIMap::ITERATOR it(this->repo_.servers()); + + // Number of servers that will go into the server_list. + CORBA::ULong n = this->repo_.servers().current_size(); + if (n <= this->count_) + { + return 0; // We already finished. + } + else + { + n -= this->count_; + } + + if (how_many > 0 && n > how_many) + { + n = how_many; + } + + server_list->length(n); + + CORBA::ULong i = 0; + for (; i < this->count_; ++i) + { + it.advance(); + } + + for (i = 0; i < n; ++i) + { + it.next(entry); + it.advance(); + ACE_ASSERT(entry != 0); + + Server_Info_Ptr info = entry->int_id_; + + server_list[i].server = info->name.c_str(); + server_list[i].startup.command_line = info->cmdline.c_str(); + server_list[i].startup.environment = info->env_vars; + server_list[i].startup.working_directory = info->dir.c_str(); + server_list[i].startup.activation = info->activation_mode; + server_list[i].startup.activator = info->activator.c_str(); + server_list[i].startup.start_limit = info->start_limit; + server_list[i].partial_ior = info->partial_ior.c_str(); + } + + this->count_ += n; + return 1; } -// Destroys the iterator. - void -ImR_Iterator::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +ImR_Iterator::destroy (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { + PortableServer::ObjectId_var oid = poa_->servant_to_id(this ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + poa_->deactivate_object (oid.in() ACE_ENV_ARG_PARAMETER); + ACE_CHECK; } diff --git a/TAO/orbsvcs/ImplRepo_Service/Iterator.h b/TAO/orbsvcs/ImplRepo_Service/Iterator.h index 2acb593021e..40059bcd58f 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Iterator.h +++ b/TAO/orbsvcs/ImplRepo_Service/Iterator.h @@ -14,10 +14,14 @@ #ifndef IMR_ITERATOR_H #define IMR_ITERATOR_H -#include "Server_Repository.h" +#include "Locator_Repository.h" #include "tao/PortableServer/PortableServerC.h" #include "tao/PortableServer/ImplRepoS.h" +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + /** * @class ImR_Iterator * @@ -26,15 +30,10 @@ */ class ImR_Iterator : public POA_ImplementationRepository::ServerInformationIterator + , public PortableServer::RefCountServantBase { public: - /// Constructor - /// Ownership of iterator is transfered to this class (we'll delete it) - ImR_Iterator (Server_Repository::HASH_IMR_MAP::ITERATOR *iterator, - PortableServer::POA_ptr poa); - - /// Destructor - ~ImR_Iterator (); + ImR_Iterator (CORBA::ULong n, Locator_Repository& repo, PortableServer::POA_ptr poa); /// Returns the next list of up to <how_many> servers. If empty, will return /// false. @@ -45,15 +44,13 @@ public: ) ACE_THROW_SPEC ((CORBA::SystemException)); - /// Destroys the iterator. virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); private: - /// Our very own iterator for transversing the server repository. - Server_Repository::HASH_IMR_MAP::ITERATOR *iterator_; - - PortableServer::POA_var poa_; + Locator_Repository& repo_; + CORBA::ULong count_; + PortableServer::POA_ptr poa_; }; #endif /* IMR_ITERATOR_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Loader.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Loader.cpp new file mode 100644 index 00000000000..458a8913bba --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Loader.cpp @@ -0,0 +1,113 @@ +// $Id$ + +#include "Locator_Loader.h" +#include "ace/Dynamic_Service.h" +#include "ace/Task.h" + +class ImR_Locator_ORB_Runner : public ACE_Task_Base +{ + ImR_Locator_Loader& service_; +public: + ImR_Locator_ORB_Runner(ImR_Locator_Loader& service) + : service_(service) + { + } + virtual int svc() + { + // Block until service_.fini() calls orb->destroy() + this->service_.run(); + return 0; + } +}; + +ImR_Locator_Loader::ImR_Locator_Loader() +{ +} + +int +ImR_Locator_Loader::init (int argc, ACE_TCHAR *argv[]) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + int err = this->opts_.init(argc, argv); + if (err != 0) + return -1; + + err = this->service_.init(this->opts_ ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + if (err != 0) + return -1; + + // Create a thread in which to run the service + ACE_ASSERT(this->runner_.get() == 0); + this->runner_.reset(new ImR_Locator_ORB_Runner(*this)); + this->runner_->activate(); + } + ACE_CATCHANY + { + return -1; + } + ACE_ENDTRY; + return 0; +} + +int +ImR_Locator_Loader::fini (void) +{ + ACE_ASSERT(this->runner_.get() != 0); + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + int ret = this->service_.fini(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->runner_->wait(); + this->runner_.reset(0); + return ret; + } + ACE_CATCHANY + { + } + ACE_ENDTRY; + return -1; +} + +CORBA::Object_ptr +ImR_Locator_Loader::create_object (CORBA::ORB_ptr, + int, + ACE_TCHAR** + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_THROW_RETURN(CORBA::NO_IMPLEMENT(), CORBA::Object::_nil()); +} + +int +ImR_Locator_Loader::run(void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + return this->service_.run(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHALL + { + ACE_ERROR((LM_ERROR, "Exception in ImR_Locator_ORB_Runner()\n")); + return -1; + } + ACE_ENDTRY; + return 0; +} + + +ACE_FACTORY_DEFINE (Locator, ImR_Locator_Loader) + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Dynamic_Service<ImR_Locator_Loader>; +template class ACE_Auto_Ptr<ImR_Locator_ORB_Runner>; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Dynamic_Service<ImR_Locator_Loader> +#pragma instantiate ACE_Auto_Ptr<ImR_Locator_ORB_Runner> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Loader.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Loader.h new file mode 100644 index 00000000000..dc44718b2ba --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Loader.h @@ -0,0 +1,46 @@ +// $Id$ +#ifndef TAO_IMR_LOCATOR_LOADER_H +#define TAO_IMR_LOCATOR_LOADER_H + +#include "ImR_Locator_i.h" + +#include "tao/Object_Loader.h" + +#include "ace/Auto_Ptr.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class ImR_Locator_ORB_Runner; + +class Locator_Export ImR_Locator_Loader : public TAO_Object_Loader +{ +public: + ImR_Locator_Loader(); + + virtual int init (int argc, ACE_TCHAR *argv[]); + + virtual int fini (void); + + virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb, + int argc, + ACE_TCHAR *argv[] + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Unlike other service objects, we have our own orb. + int run(void); + +private: + ImR_Locator_i service_; + Options opts_; + ACE_Auto_Ptr<ImR_Locator_ORB_Runner> runner_; +private: + ACE_UNIMPLEMENTED_FUNC (ImR_Locator_Loader (const ImR_Locator_Loader &)) + ACE_UNIMPLEMENTED_FUNC (ImR_Locator_Loader &operator = (const ImR_Locator_Loader &)) +}; + +ACE_FACTORY_DECLARE (Locator, ImR_Locator_Loader) + +#endif diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp index 4fb3d110445..23ffa674a22 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp @@ -16,9 +16,10 @@ #if defined (ACE_WIN32) #include "ImR_Locator_i.h" +#include "Locator_Options.h" #include "tao/ORB_Core.h" -//#include "tao/corba.h" +#include "tao/corba.h" #include "ace/Reactor.h" /** @@ -59,19 +60,39 @@ int Locator_NT_Service::svc (void) { ImR_Locator_i server; + Options opts; + + if (opts.init_from_registry() != 0) + { + report_status (SERVICE_STOPPED); + return -1; + } ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { - report_status (SERVICE_RUNNING); - int status = server.init (ACE_ENV_SINGLE_ARG_PARAMETER); + int status = server.init (opts ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; - report_status (SERVICE_STOPPED); - if (status != -1) + if (status == -1) + { + report_status (SERVICE_STOPPED); + return -1; + } + else { - return 0; + report_status (SERVICE_RUNNING); + server.run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + status = server.fini (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + report_status (SERVICE_STOPPED); + } + if (status != -1) + return 0; } ACE_CATCH (CORBA::SystemException, sysex) { diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.h b/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.h index 20ba4866584..5e046236ae2 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.h +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_NT_Service.h @@ -7,8 +7,8 @@ * * @author Darrell Brunsch <brunsch@cs.wustl.edu> * @author Jeff Parsons <parsons@cs.wustl.edu> - * @author John Tucker <jtucker@infoglide.com> - * @author Mike Vitalo <mvitalo@infoglide.com> + * @author John Tucker <jtucker@infoglide.com> + * @author Mike Vitalo <mvitalo@infoglide.com> */ //============================================================================= @@ -19,10 +19,10 @@ #if defined (ACE_WIN32) -#include "tao/orbconf.h" - #include "ace/NT_Service.h" #include "ace/Singleton.h" +#include "ace/Synch.h" +#include "tao/orbconf.h" static const char * IMR_LOCATOR_SERVICE_NAME = "TAOIMRLocator"; static const char * IMR_LOCATOR_DISPLAY_NAME = "TAO Implementation Repository Locator"; @@ -53,8 +53,10 @@ private: friend class ACE_Singleton<Locator_NT_Service, MUTEX>; }; -typedef ACE_Singleton<Locator_NT_Service, Locator_NT_Service::MUTEX> SERVICE; +typedef ACE_Singleton<Locator_NT_Service, ACE_Mutex> SERVICE; #endif /* ACE_WIN32 */ #endif /* Locator_NT_Service_H */ + + diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp index 70ea00c9586..bba2691d504 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp @@ -9,12 +9,9 @@ //============================================================================= #include "Locator_Options.h" -#include "Locator_NT_Service.h" -#include "tao/Strategies/advanced_resource.h" #include "ace/Arg_Shifter.h" -#include "ace/ARGV.h" +#include "ace/Log_Msg.h" #include "ace/OS_NS_strings.h" -#include "ace/Mutex.h" ACE_RCSID (ImplRepo_Service, Options, @@ -28,25 +25,19 @@ static const ACE_TCHAR *SERVICE_REG_PATH = ACE_TEXT ("SYSTEM\\CurrentControlSet\\Services\\TAOIMRLocator\\Parameters"); #endif /* ACE_WIN32 */ -/** - * Default Constructor. Assigns default values to all the member variables. - */ +static const int DEFAULT_PING_INTERVAL = 10; // seconds + Options::Options () - : debug_ (1) - , multicast_ (false) - , service_ (false) - , service_command_(SC_NONE) +: repo_mode_ (REPO_NONE) +, debug_ (1) +, multicast_ (false) +, service_ (false) +, ping_interval_(DEFAULT_PING_INTERVAL) +, readonly_ (false) +, service_command_(SC_NONE) { } -/** - * parse_args uses an ACE_Arg_Shifter to grab all the options that are - * specific to the ImR. - * - * @retval 0 Success - * @retval -1 Error parsing args - * @retval 1 Success but we should exit. - */ int Options::parse_args (int &argc, char *argv[]) { @@ -67,12 +58,12 @@ Options::parse_args (int &argc, char *argv[]) } if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("install")) == 0) + ACE_TEXT ("install")) == 0) { this->service_command_ = SC_INSTALL; } else if (ACE_OS::strcasecmp (shifter.get_current (), - ACE_TEXT ("remove")) == 0) + ACE_TEXT ("remove")) == 0) { this->service_command_ = SC_REMOVE; } @@ -81,7 +72,7 @@ Options::parse_args (int &argc, char *argv[]) ACE_ERROR((LM_ERROR, "Error: Unknown service command : %s\n", shifter.get_current())); this->print_usage (); return -1; - } + } } else if (ACE_OS::strcasecmp (shifter.get_current (), ACE_TEXT ("-d")) == 0) @@ -129,6 +120,74 @@ Options::parse_args (int &argc, char *argv[]) this->print_usage (); return 1; } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-l")) == 0) + { + this->readonly_ = true; + } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-p")) == 0) + { + shifter.consume_arg (); + + if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') + { + ACE_ERROR ((LM_ERROR, "Error: -p option needs a filename\n")); + this->print_usage (); + return -1; + } + + this->persist_file_name_ = shifter.get_current (); + this->repo_mode_ = REPO_HEAP_FILE; + } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-r")) == 0) + { + this->repo_mode_ = REPO_REGISTRY; + } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-x")) == 0) + { + shifter.consume_arg (); + + if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') + { + ACE_ERROR ((LM_ERROR, "Error: -x option needs a filename\n")); + this->print_usage (); + return -1; + } + + this->persist_file_name_ = shifter.get_current (); + this->repo_mode_ = REPO_XML_FILE; + } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-t")) == 0) + { + shifter.consume_arg (); + + if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') + { + ACE_ERROR ((LM_ERROR, "Error: -t option needs a value\n")); + this->print_usage (); + return -1; + } + this->startup_timeout_ = + ACE_Time_Value (ACE_OS::atoi (shifter.get_current ())); + } + else if (ACE_OS::strcasecmp (shifter.get_current (), + ACE_TEXT ("-v")) == 0) + { + shifter.consume_arg (); + + if (!shifter.is_anything_left () || shifter.get_current ()[0] == '-') + { + ACE_ERROR ((LM_ERROR, "Error: -v option needs a value\n")); + this->print_usage (); + return -1; + } + this->ping_interval_ = + ACE_Time_Value (0, 1000 * ACE_OS::atoi (shifter.get_current ())); + } else { shifter.ignore_arg (); @@ -141,163 +200,56 @@ Options::parse_args (int &argc, char *argv[]) return 0; } -/** - * @retval 0 Success - * @retval -1 Error parsing args - * @retval 1 Success but we should exit. - */ int Options::init (int argc, char *argv[]) { + // Make an initial pass through and grab the arguments that we recognize. + // This may also run the commands to install or remove the nt service. int result = this->parse_args (argc, argv); - if (result != 0) { + if (result != 0) + { return result; } - ACE_ARGV orb_args; // Save the leftovers to a ACE_ARGV class - ACE_CString cmdline; // We'll save this in the registry when installing. - for (int i = 1; i < argc; ++i) - { - cmdline += ACE_CString(argv[i]) + ACE_CString(" "); - if (orb_args.add (argv[i]) == -1) - { - ACE_ERROR ((LM_ERROR, "Error: Could not save argument")); - return -1; - } - } - - result = run_service_command(cmdline); - - if (result != 0) - return result; - - char* argv_tmp = 0; - - // Load from the registry. This may replace the args. - if (this->load_registry_options(argv_tmp, orb_args) != 0) - return -1; - - ACE_Auto_Array_Ptr<char> argv_deleter(argv_tmp); - - int orb_argc = orb_args.argc (); - // Now initialize the orb and pass it the leftover arguments - ACE_TRY_NEW_ENV - { - // First make sure the ImplRepo doesn't pick up an environment setting - // that would make it try to register with itself. - char* use_IMR_env_var_value = ACE_OS::getenv ("TAO_USE_IMR"); - if (use_IMR_env_var_value != 0) - { - ACE_OS::putenv ("TAO_USE_IMR=0"); - } - - this->orb_ = CORBA::ORB_init (orb_argc, - orb_args.argv (), - 0 - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Caught exception \n"); - ACE_ERROR ((LM_ERROR, "Error: Cannot initialize ORB\n")); - return -1; - } - ACE_ENDTRY; + for (int i = 0; i < argc; ++i) + { + this->cmdline_ += ACE_CString(argv[i]) + ACE_CString(" "); + } + return 0; +} - // Indicates successful parsing of command line. +int +Options::init_from_registry (void) +{ + this->load_registry_options(); return 0; } -/** - * Just print out the usage message to STDERR - */ void Options::print_usage (void) const { ACE_ERROR ((LM_ERROR, "Usage:\n" "\n" - "ImR_Locator [-c cmd] [-d 0|1|2] [-m] [-o file] [-s]\n" - "\n" + "ImR_Locator [-c cmd] [-d 0|1|2] [-m] [-o file]\n" + " [-r|-p file|-x file] [-s] [-t secs] [-v secs]\n" " -c command Runs nt service commands ('install' or 'remove')\n" " -d level Sets the debug level (default 1)\n" + " -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") - ); + " -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" + " -v secs Server verification interval.(Default=10)\n" + )); } - -/** - * Executes the various commands that are useful for a NT service. Right - * now these include 'install' and 'remove'. Others, such as 'start' and - * 'stop' can be added, but the 'net' program in Windows already handles - * these commands. - * - * @todo Finish implementing Options::run_service_command - * @todo Update to unicode - */ int -Options::run_service_command (const ACE_CString& cmdline) -{ - if (this->service_command_ == SC_NONE) - return 0; -#if defined (ACE_WIN32) - SERVICE::instance ()->name (IMR_LOCATOR_SERVICE_NAME, IMR_LOCATOR_DISPLAY_NAME); - - if (this->service_command_ == SC_INSTALL) - { - char pathname[_MAX_PATH * 2 + 3]; // +3 for the ' -s' at the end - - if (ACE_TEXT_GetModuleFileName(NULL, pathname, _MAX_PATH * 2) == 0) - { - ACE_ERROR ((LM_ERROR, "Error: Could not get module file name.\n")); - return -1; - } - - // Append the command used for running the implrepo as - ACE_OS::strcat (pathname, ACE_TEXT (" -s")); - - int ret = SERVICE::instance ()->insert (SERVICE_DEMAND_START, - SERVICE_ERROR_NORMAL, - pathname - ); - if (ret != -1) { - if (debug() > 0) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Service installed.\n")); - } - this->save_registry_options(cmdline); - } else { - ACE_ERROR((LM_ERROR, "Error: Failed to install service.\n")); - } - if (ret == 0) - return 1; - } - else if (this->service_command_ == SC_REMOVE) - { - int ret = SERVICE::instance ()->remove (); - if (debug() > 0) { - ACE_DEBUG ((LM_DEBUG, "ImR Locator: Service removed.\n")); - } - if (ret == 0) - return 1; // If successfull, then we don't want to continue. - } - - return -1; - -#else /* ACE_WIN32 */ - ACE_UNUSED_ARG (cmdline); - ACE_ERROR ((LM_ERROR, "Service not supported on this platform")); - - return -1; -#endif /* ACE_WIN32 */ -} - -int -Options::save_registry_options(const ACE_CString& cmdline) +Options::save_registry_options() { #if defined (ACE_WIN32) HKEY key = 0; @@ -315,66 +267,57 @@ Options::save_registry_options(const ACE_CString& cmdline) if (err != ERROR_SUCCESS) { return -1; } - err = ACE_TEXT_RegSetValueEx(key, "ORBInitOptions", 0, REG_SZ, - (LPBYTE) cmdline.c_str(), cmdline.length() + 1); + err = ACE_TEXT_RegSetValueEx(key, "ORBInitOptions", 0, REG_SZ, + (LPBYTE) this->cmdline_.c_str(), this->cmdline_.length() + 1); ACE_ASSERT(err == ERROR_SUCCESS); - err = ACE_TEXT_RegSetValueEx(key, "IORFile", 0, REG_SZ, + err = ACE_TEXT_RegSetValueEx(key, "IORFile", 0, REG_SZ, (LPBYTE) ior_output_file_.c_str(), ior_output_file_.length() + 1); ACE_ASSERT(err == ERROR_SUCCESS); - err = ACE_TEXT_RegSetValueEx(key, "DebugLevel", 0, REG_DWORD, + err = ACE_TEXT_RegSetValueEx(key, "DebugLevel", 0, REG_DWORD, (LPBYTE) &debug_ , sizeof(debug_)); ACE_ASSERT(err == ERROR_SUCCESS); - DWORD tmp = multicast_ ? 1 : 0; - err = ACE_TEXT_RegSetValueEx(key, "Multicast", 0, REG_DWORD, + err = ACE_TEXT_RegSetValueEx(key, "PersistFile", 0, REG_SZ, + (LPBYTE) this->persist_file_name_.c_str(), this->persist_file_name_.length() + 1); + ACE_ASSERT(err == ERROR_SUCCESS); + + DWORD tmp = this->ping_interval_.msec(); + err = ACE_TEXT_RegSetValueEx(key, "PingInterval", 0, REG_DWORD, + (LPBYTE) &tmp, sizeof(DWORD)); + ACE_ASSERT(err == ERROR_SUCCESS); + + tmp = this->readonly_ ? 1 : 0; + err = ACE_TEXT_RegSetValueEx(key, "Lock", 0, REG_DWORD, + (LPBYTE) &tmp, sizeof(DWORD)); + ACE_ASSERT(err == ERROR_SUCCESS); + + tmp = this->repo_mode_; + err = ACE_TEXT_RegSetValueEx(key, "PersistType", 0, REG_DWORD, + (LPBYTE) &tmp, sizeof(DWORD)); + ACE_ASSERT(err == ERROR_SUCCESS); + + tmp = this->startup_timeout_.sec(); + err = ACE_TEXT_RegSetValueEx(key, "Timeout", 0, REG_DWORD, + (LPBYTE) &tmp, sizeof(DWORD)); + ACE_ASSERT(err == ERROR_SUCCESS); + + tmp = multicast_ ? 1 : 0; + err = ACE_TEXT_RegSetValueEx(key, "Multicast", 0, REG_DWORD, (LPBYTE) &tmp, sizeof(DWORD)); ACE_ASSERT(err == ERROR_SUCCESS); err = ::RegCloseKey(key); ACE_ASSERT(err == ERROR_SUCCESS); -#else - ACE_UNUSED_ARG (cmdline); #endif return 0; } -namespace { - // This both parses the cmdline by replacing spaces with \0's, and - // adds each command to the ACE_ARGV. - void parse_command_line(char* cmdline, ACE_ARGV& argv) { - // This tokenizer will replace all spaces with end-of-string - // characters and will preserve text between "" and '' pairs. - ACE_Tokenizer parser (cmdline); - parser.delimiter_replace (' ', '\0'); - parser.preserve_designators ('\"', '\"'); - parser.preserve_designators ('\'', '\''); - - for (char *p = parser.next (); p; p = parser.next ()) { - argv.add(p); - } - } -} -/** - * We will only load from the registry if we are a service. - * We load each parameter from individual string keys, and then - * we have to parse the cmdline property into the orb_options - * so that they can be passed to ORB_init() - */ int -Options::load_registry_options (char*& cmdline, ACE_ARGV& argv) +Options::load_registry_options () { #if defined (ACE_WIN32) - if (! this->service()) - { - if (this->debug () > 1) - ACE_DEBUG ((LM_DEBUG, - "Locator_Options::load_registry_options: Not running " - "as a service, will not load data from registry\n")); - return 0; - } - HKEY key = 0; // Create or open the parameters key LONG err = ACE_TEXT_RegOpenKeyEx (SERVICE_REG_ROOT, @@ -387,110 +330,152 @@ Options::load_registry_options (char*& cmdline, ACE_ARGV& argv) // If there aren't any saved parameters, then that's ok. return 0; } - ACE_TCHAR tmpstr[4096]; + TCHAR tmpstr[4096]; DWORD sz = sizeof(tmpstr); DWORD type = 0; - err = ACE_TEXT_RegQueryValueEx(key, "ORBInitOptions", 0, &type, + err = ACE_TEXT_RegQueryValueEx(key, "ORBInitOptions", 0, &type, (LPBYTE) tmpstr, &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_SZ); - cmdline = new char[sz+1]; - ACE_OS::strncpy(cmdline, tmpstr, sz); - parse_command_line(cmdline, argv); + tmpstr[sz - 1] = '\0'; + this->cmdline_ = tmpstr; } sz = sizeof(tmpstr); - err = ACE_TEXT_RegQueryValueEx(key, "IORFile", 0, &type, + err = ACE_TEXT_RegQueryValueEx(key, "IORFile", 0, &type, (LPBYTE) tmpstr, &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_SZ); - tmpstr[sz] = ACE_TCHAR('\0'); - this->ior_output_file_ = ACE_CString(tmpstr); + tmpstr[sz - 1] = '\0'; + this->ior_output_file_ = tmpstr; } sz = sizeof(debug_); - err = ACE_TEXT_RegQueryValueEx(key, "DebugLevel", 0, &type, - (LPBYTE) &debug_ , &sz); + err = ACE_TEXT_RegQueryValueEx(key, "DebugLevel", 0, &type, + (LPBYTE) &this->debug_ , &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_DWORD); } DWORD tmp = 0; - err = ACE_TEXT_RegQueryValueEx(key, "Multicast", 0, &type, + sz = sizeof(tmp); + err = ACE_TEXT_RegQueryValueEx(key, "PingInterval", 0, &type, + (LPBYTE) &tmp, &sz); + if (err == ERROR_SUCCESS) { + ACE_ASSERT(type == REG_DWORD); + ping_interval_.msec(tmp); + } + + tmp = 0; + sz = sizeof(tmp); + err = ACE_TEXT_RegQueryValueEx(key, "Lock", 0, &type, + (LPBYTE) &tmp, &sz); + if (err == ERROR_SUCCESS) { + ACE_ASSERT(type == REG_DWORD); + readonly_ = tmp != 0; + } + + sz = sizeof(this->repo_mode_); + err = ACE_TEXT_RegQueryValueEx(key, "PersistType", 0, &type, + (LPBYTE) &this->repo_mode_, &sz); + if (err == ERROR_SUCCESS) { + ACE_ASSERT(type == REG_DWORD); + } + + tmp = 0; + sz = sizeof(tmp); + err = ACE_TEXT_RegQueryValueEx(key, "Timeout", 0, &type, + (LPBYTE) &tmp, &sz); + if (err == ERROR_SUCCESS) { + ACE_ASSERT(type == REG_DWORD); + this->startup_timeout_.sec(tmp); + } + + tmp = 0; + sz = sizeof(tmp); + err = ACE_TEXT_RegQueryValueEx(key, "Multicast", 0, &type, (LPBYTE) &tmp, &sz); if (err == ERROR_SUCCESS) { ACE_ASSERT(type == REG_DWORD); this->multicast_ = tmp != 0; } + sz = sizeof(tmpstr); + err = ACE_TEXT_RegQueryValueEx(key, "PersistFile", 0, &type, + (LPBYTE) tmpstr, &sz); + if (err == ERROR_SUCCESS) { + ACE_ASSERT(type == REG_SZ); + tmpstr[sz - 1] = '\0'; + this->persist_file_name_ = tmpstr; + } + err = ::RegCloseKey(key); ACE_ASSERT(err == ERROR_SUCCESS); - - return 0; -#else /* ACE_WIN32 */ - ACE_UNUSED_ARG (cmdline); - ACE_UNUSED_ARG (argv); +#endif return 0; -#endif /* ACE_WIN32 */ } -/** - * Standalone Mode - * - * @retval false Run as standalone service - * @retval true Run as a service (only on NT right now) - */ bool Options::service (void) const { return this->service_; } - -/** - * Debug level for the IR. - * - * @retval 0 Quiet - * @retval 1 Trace messages - * @retval 2 Detailed messages - */ unsigned int Options::debug (void) const { return this->debug_; } - -/** - * @return The file where the IOR will be stored. - */ -ACE_CString -Options::output_filename (void) const +const ACE_CString& +Options::ior_filename (void) const { return this->ior_output_file_; } -/** - * @return A pointer to the ORB. - */ -CORBA::ORB_ptr -Options::orb (void) const +bool +Options::multicast (void) const { - return CORBA::ORB::_duplicate (this->orb_.in ()); + return this->multicast_; +} + +Options::SERVICE_COMMAND +Options::service_command(void) const +{ + return this->service_command_; +} + +const ACE_CString& +Options::cmdline(void) const { + return this->cmdline_; +} + +const ACE_CString& +Options::persist_file_name(void) const { + return this->persist_file_name_; +} + +ACE_Time_Value +Options::startup_timeout (void) const +{ + return this->startup_timeout_; +} + +ACE_Time_Value +Options::ping_interval (void) const +{ + return this->ping_interval_; +} + +Options::RepoMode +Options::repository_mode (void) const +{ + return this->repo_mode_; } -/** - * @retval false Do not listen for multicast location requests. - * @retval true Do Listen. - */ bool -Options::multicast (void) const +Options::readonly (void) const { - return this->multicast_; + return this->readonly_; } -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Singleton <Options, ACE_Null_Mutex>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Singleton <Options, ACE_Null_Mutex> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h index 3585e3bb2cd..7c812bd0e15 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h @@ -15,17 +15,14 @@ #ifndef LOCATOR_OPTIONS_H #define LOCATOR_OPTIONS_H -#include "Repository_Configuration.h" +#include "locator_export.h" -#include "tao/ORB.h" - -#include "ace/Singleton.h" #include "ace/SString.h" -#include "ace/Auto_Ptr.h" - +#include "ace/Time_Value.h" -// Forward declarations -class ACE_ARGV; +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ /** * @class Options @@ -34,20 +31,29 @@ class ACE_ARGV; * * This is where the settings for TAO's Implementation Repository are stored. */ -class Options +class Locator_Export Options { public: + enum SERVICE_COMMAND { SC_NONE, SC_INSTALL, SC_REMOVE }; - /// Default Constructor + enum RepoMode { + REPO_NONE, + REPO_XML_FILE, + REPO_HEAP_FILE, + REPO_REGISTRY + }; + Options (); /// Parse the command-line arguments and initialize the options. int init (int argc, char *argv[]); + /// This version should only be used when run as an nt service. + int init_from_registry(); /// Service Mode bool service (void) const; @@ -56,14 +62,35 @@ public: unsigned int debug (void) const; /// Returns the file where the IOR should be stored. - ACE_CString output_filename (void) const; - - /// Returns a pointer to the ORB. - CORBA::ORB_ptr orb (void) const; + const ACE_CString& ior_filename (void) const; /// Will we listen for multicast location requests? bool multicast (void) const; + /// The nt service command to run (install/remove) + SERVICE_COMMAND service_command(void) const; + + int save_registry_options(); + + const ACE_CString& cmdline(void) const; + + /// File that contains the activator related information + /// that the persistent locator has to save. + const ACE_CString& persist_file_name(void) const; + + /// Do we allow modifications to the servers? + bool readonly (void) const; + + RepoMode repository_mode (void) const; + + /// Returns the timeout value for program starting. + ACE_Time_Value startup_timeout (void) const; + + /// If the server hasn't been verified for a while, then we'll + /// ping it. Note : No timers are currently used. We simply ping() + /// during indirect invocations, if this interval has elapsed. + ACE_Time_Value ping_interval (void) const; + private: /// Parses and pulls out arguments for the ImR int parse_args (int &argc, char *argv[]); @@ -74,9 +101,11 @@ private: /// Run a service command. int run_service_command (const ACE_CString& cmdline); - /// Loads ORB options from the registry - int load_registry_options (char*& cmdline, ACE_ARGV& argv); - int save_registry_options (const ACE_CString& cmdline); + int load_registry_options(); +private: + + // xml, heap, or registry + RepoMode repo_mode_; /// Debug level. unsigned int debug_; @@ -87,16 +116,26 @@ private: /// Will we listen for multicast location requests? bool multicast_; - /// The ORB for the Implementation Repository. - CORBA::ORB_var orb_; - /// Are we running as a service? bool service_; + /// The amount of time between successive "are you started yet?" pings. + ACE_Time_Value ping_interval_; + + /// The amount of time to wait for a server to response after starting it. + ACE_Time_Value startup_timeout_; + + /// Can the server_repository be modified? + bool readonly_; + /// SC_NONE, SC_INSTALL, SC_REMOVE, ... - int service_command_; -}; + SERVICE_COMMAND service_command_; -typedef ACE_Singleton <Options, ACE_Null_Mutex> OPTIONS; + /// Our extra command line arguments + ACE_CString cmdline_; + + /// The persistent XML file name. + ACE_CString persist_file_name_; +}; -#endif +#endif diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp new file mode 100644 index 00000000000..1f371a1a2f8 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp @@ -0,0 +1,554 @@ +#include "Locator_Repository.h" +#include "Locator_XMLHandler.h" +#include "utils.h" +#include "ace/OS_NS_stdio.h" + +#include "ACEXML/parser/parser/Parser.h" +#include "ACEXML/common/FileCharStream.h" + +ACE_RCSID (ImplRepo_Service, Locator_Repository, "$Id$") + +static const char* STARTUP_COMMAND = "StartupCommand"; +static const char* WORKING_DIR = "WorkingDir"; +static const char* ENVIRONMENT = "Environment"; +static const char* ACTIVATION = "Activation"; +static const char* PARTIAL_IOR = "Location"; +static const char* IOR = "IOR"; +static const char* START_LIMIT = "StartLimit"; +static const char* ACTIVATOR = "Activator"; +static const char* SERVERS_ROOT_KEY = "Servers"; +static const char* ACTIVATORS_ROOT_KEY = "Activators"; +static const char* TOKEN = "Token"; + +#if defined (ACE_WIN32) +static const char* WIN32_REG_KEY = "Software\\TAO\\ImplementationRepository"; +#endif + +static void loadActivatorsAsBinary(ACE_Configuration& config, Locator_Repository::AIMap& map) +{ + ACE_Configuration_Section_Key root; + int err = config.open_section(config.root_section(), ACTIVATORS_ROOT_KEY, 0, root); + if (err == 0) + { + int index = 0; + ACE_CString name; + while (config.enumerate_sections (root, index, name) == 0) + { + ACE_CString ior; + u_int token; + + ACE_Configuration_Section_Key key; + + // Can't fail, because we're enumerating + config.open_section(root, name.c_str(), 0, key); + + config.get_string_value (key, IOR, ior); + config.get_integer_value(key, TOKEN, token); + + Activator_Info_Ptr info(new Activator_Info(name, token, ior)); + map.bind (name, info); + index++; + } + } +} + +static void loadServersAsBinary(ACE_Configuration& config, Locator_Repository::SIMap& map) +{ + ACE_Configuration_Section_Key root; + int err = config.open_section(config.root_section(), SERVERS_ROOT_KEY, 0, root); + if (err == 0) + { + int index = 0; + ACE_CString name; + while (config.enumerate_sections (root, index, name) == 0) + { + ACE_CString cmdline, dir, envstr, partial_ior, ior, aname; + u_int amodeint = ImplementationRepository::MANUAL; + u_int start_limit; + + ACE_Configuration_Section_Key key; + + // Can't fail, because we're enumerating + config.open_section(root, name.c_str(), 0, key); + + // Ignore any missing values. Server name is enough on its own. + config.get_string_value (key, ACTIVATOR, aname); + config.get_string_value (key, STARTUP_COMMAND, cmdline); + config.get_string_value (key, WORKING_DIR, dir); + config.get_string_value (key, ENVIRONMENT, envstr); + config.get_integer_value(key, ACTIVATION, amodeint); + config.get_string_value (key, PARTIAL_IOR, partial_ior); + config.get_string_value (key, IOR, ior); + config.get_integer_value(key, START_LIMIT, start_limit); + + ImplementationRepository::ActivationMode amode = ACE_static_cast ( + ImplementationRepository::ActivationMode, amodeint); + + ImplementationRepository::EnvironmentList env_vars = + ImR_Utils::parseEnvList(envstr); + + Server_Info_Ptr info(new Server_Info(name, aname, cmdline, + env_vars, dir, amode, start_limit, partial_ior, ior)); + map.bind (name, info); + index++; + } + } +} + +static void loadAsBinary(ACE_Configuration& config, Locator_Repository& repo) +{ + loadServersAsBinary(config, repo.servers()); + loadActivatorsAsBinary(config, repo.activators()); +} + +// Note : There is no saveAsBinary(), because the ACE_Configuration class +// supports saving of individual entries. + +static void convertEnvList(const Locator_XMLHandler::EnvList& in, ImplementationRepository::EnvironmentList& out) +{ + CORBA::ULong sz = in.size(); + out.length(sz); + for (CORBA::ULong i = 0; i < sz; ++i) + { + out[i].name = in[i].name.c_str(); + out[i].value = in[i].value.c_str(); + } +} + +class Server_Repo_XML_Callback : public Locator_XMLHandler::Callback { + Locator_Repository& repo_; +public: + Server_Repo_XML_Callback(Locator_Repository& repo) + : repo_(repo) + { + } + virtual void next_server(const ACE_CString& name, + const ACE_CString& aname, const ACE_CString& cmdline, + const Locator_XMLHandler::EnvList& envlst, const ACE_CString& dir, + const ACE_CString& amodestr, int start_limit, + const ACE_CString& partial_ior, const ACE_CString& ior) + { + ImplementationRepository::ActivationMode amode = + ImR_Utils::parseActivationMode(amodestr); + + ImplementationRepository::EnvironmentList env_vars; + convertEnvList(envlst, env_vars); + + int limit = start_limit < 1 ? 1 : start_limit; + + Server_Info_Ptr si(new Server_Info(name, aname, cmdline, + env_vars, dir, amode, limit, partial_ior, ior)); + + this->repo_.servers().bind(name, si); + } + virtual void next_activator (const ACE_CString& aname, + long token, + const ACE_CString& ior) + { + Activator_Info_Ptr si(new Activator_Info(aname, token, ior)); + this->repo_.activators().bind(aname, si); + } +}; + +static int loadAsXML(const ACE_CString& fname, Locator_Repository& repo) { + + ACEXML_FileCharStream* fstm = new ACEXML_FileCharStream; // xml input source will take ownership + + if (fstm->open(fname.c_str()) != 0) + { + // This is not a real error. The xml file may not exist yet. + delete fstm; + return 0; + } + + Server_Repo_XML_Callback cb(repo); + + Locator_XMLHandler handler(cb); + + ACEXML_Parser parser; + + // InputSource takes ownership + ACEXML_InputSource input(fstm); + + parser.setContentHandler (&handler); + parser.setDTDHandler (&handler); + parser.setErrorHandler (&handler); + parser.setEntityResolver (&handler); + + ACEXML_TRY_NEW_ENV + { + parser.parse (&input ACEXML_ENV_ARG_PARAMETER); + ACEXML_TRY_CHECK; + } + ACEXML_CATCH (ACEXML_Exception, ex) + { + ACE_ERROR((LM_ERROR, "Error during load of ImR persistence xml file.")); + ex.print(); + return -1; + } + ACEXML_ENDTRY; + return 0; +} + +// Note : Would pass servers by const&, but ACE hash map const_iterator is broken. +static void saveAsXML(const ACE_CString& fname, Locator_Repository& repo) { + FILE* fp = ACE_OS::fopen (fname.c_str(), "w"); + if (fp == 0) + { + ACE_ERROR((LM_ERROR, "Couldn't write to file %s\n", fname.c_str())); + return; + } + ACE_OS::fprintf(fp,"<?xml version=\"1.0\"?>\n"); + ACE_OS::fprintf(fp,"<!DOCTYPE %s/>\n", Locator_XMLHandler::ROOT_TAG); + ACE_OS::fprintf(fp,"<%s>\n", Locator_XMLHandler::ROOT_TAG); + + // Save servers + Locator_Repository::SIMap::ENTRY* sientry = 0; + Locator_Repository::SIMap::ITERATOR siit(repo.servers()); + for (; siit.next(sientry); siit.advance()) { + Server_Info_Ptr& info = sientry->int_id_; + + 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_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); + ACE_OS::fprintf(fp," partial_ior=\"%s\"", info->partial_ior.c_str()); + ACE_OS::fprintf(fp," ior=\"%s\"", info->ior.c_str()); + ACE_OS::fprintf(fp,">\n"); + + for (CORBA::ULong i = 0; i < info->env_vars.length(); ++i) + { + 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_OS::fprintf(fp,"/>\n"); + } + + ACE_OS::fprintf(fp,"\t</%s>\n", Locator_XMLHandler::SERVER_INFO_TAG); + } + + // Save Activators + Locator_Repository::AIMap::ENTRY* aientry = 0; + Locator_Repository::AIMap::ITERATOR aiit(repo.activators()); + for (; aiit.next(aientry); aiit.advance()) { + ACE_CString aname = aientry->ext_id_; + Activator_Info_Ptr& info = aientry->int_id_; + ACE_OS::fprintf(fp,"\t<%s", Locator_XMLHandler::ACTIVATOR_INFO_TAG); + ACE_OS::fprintf(fp," name=\"%s\"", aname.c_str()); + ACE_OS::fprintf(fp," token=\"%d\"", info->token); + ACE_OS::fprintf(fp," ior=\"%s\"", info->ior.c_str ()); + ACE_OS::fprintf(fp,"/>\n"); + } + + ACE_OS::fprintf(fp,"</%s>\n", Locator_XMLHandler::ROOT_TAG); + ACE_OS::fclose(fp); +} + +Locator_Repository::Locator_Repository() +: rmode_(Options::REPO_NONE) +, config_(0) +{ +} + +int +Locator_Repository::init(Options::RepoMode rmode, const ACE_CString& name) +{ + this->rmode_ = rmode; + this->fname_ = name; + + int err = 0; + switch (this->rmode_) { + case Options::REPO_NONE: + { + break; + } + case Options::REPO_HEAP_FILE: + { + ACE_Configuration_Heap* heap = new ACE_Configuration_Heap(); + this->config_.reset(heap); + err = heap->open(this->fname_.c_str()); + if (err == 0) + { + loadAsBinary(*this->config_, *this); + } + break; + } +#if defined (ACE_WIN32) + case Options::REPO_REGISTRY: + { + HKEY root = ACE_Configuration_Win32Registry:: + resolve_key(HKEY_LOCAL_MACHINE, WIN32_REG_KEY); + this->config_.reset(new ACE_Configuration_Win32Registry(root)); + loadAsBinary(*this->config_, *this); + break; + } +#endif + case Options::REPO_XML_FILE: + { + err = loadAsXML(this->fname_, *this); + break; + } + default: + { + bool invalid_rmode_specified = false; + ACE_ASSERT(invalid_rmode_specified); + ACE_UNUSED_ARG(invalid_rmode_specified); + err = -1; + } + } + return err; +} + +int +Locator_Repository::add_server (const ACE_CString& name, + const ACE_CString& aname, + const ACE_CString& startup_command, + const ImplementationRepository::EnvironmentList& env_vars, + const ACE_CString& working_dir, + ImplementationRepository::ActivationMode activation, + int start_limit, + const ACE_CString& partial_ior, + const ACE_CString& ior, + ImplementationRepository::ServerObject_ptr svrobj) +{ + int limit = start_limit < 1 ? 1 : start_limit; + Server_Info_Ptr info(new Server_Info(name, aname, startup_command, + env_vars, working_dir, activation, limit, partial_ior, ior, svrobj)); + + int err = servers().bind (name, info); + if (err != 0) + { + return err; + } + this->update_server(*info); + return 0; +} + +int +Locator_Repository::add_activator (const ACE_CString& name, + const CORBA::Long token, + const ACE_CString& ior, + ImplementationRepository::Activator_ptr act) +{ + Activator_Info_Ptr info(new Activator_Info(name, token, ior, act)); + + int err = activators().bind (name, info); + if (err != 0) + { + return err; + } + this->update_activator(*info); + return 0; +} + +int +Locator_Repository::update_server (const Server_Info& info) +{ + if (rmode_ == Options::REPO_HEAP_FILE || rmode_ == Options::REPO_REGISTRY) + { + ACE_ASSERT(this->config_.get() != 0); + + ACE_Configuration& cfg = *this->config_; + + ACE_Configuration_Section_Key root; + ACE_Configuration_Section_Key key; + int err = cfg.open_section (cfg.root_section(), SERVERS_ROOT_KEY, 1, root); + if (err != 0) + { + ACE_ERROR((LM_ERROR, "Unable to open config section:%s\n", SERVERS_ROOT_KEY)); + return err; + } + err = cfg.open_section (root, info.name.c_str(), 1, key); + if (err != 0) + { + ACE_ERROR((LM_ERROR, "Unable to open config section:%s\n", info.name.c_str())); + return err; + } + + ACE_CString envstr = ImR_Utils::envListToString(info.env_vars); + + cfg.set_string_value (key, ACTIVATOR, info.activator.c_str()); + cfg.set_string_value (key, STARTUP_COMMAND, info.cmdline.c_str()); + cfg.set_string_value (key, WORKING_DIR, info.dir.c_str()); + cfg.set_string_value (key, ENVIRONMENT, envstr); + cfg.set_integer_value (key, ACTIVATION, info.activation_mode); + cfg.set_integer_value (key, START_LIMIT, info.start_limit); + cfg.set_string_value (key, PARTIAL_IOR, info.partial_ior.c_str()); + cfg.set_string_value (key, IOR, info.ior.c_str()); + } + else if (rmode_ == Options::REPO_XML_FILE) + { + saveAsXML(this->fname_, *this); + } + return 0; +} + +int +Locator_Repository::update_activator (const Activator_Info& info) +{ + if (rmode_ == Options::REPO_HEAP_FILE || rmode_ == Options::REPO_REGISTRY) + { + ACE_ASSERT(this->config_.get() != 0); + + ACE_Configuration& cfg = *this->config_; + + ACE_Configuration_Section_Key root; + ACE_Configuration_Section_Key key; + int err = cfg.open_section (cfg.root_section(), ACTIVATORS_ROOT_KEY, 1, root); + if (err != 0) + { + ACE_ERROR((LM_ERROR, "Unable to open config section:%s\n", ACTIVATORS_ROOT_KEY)); + return err; + } + err = cfg.open_section (root, info.name.c_str(), 1, key); + if (err != 0) + { + ACE_ERROR((LM_ERROR, "Unable to open config section:%s\n", info.name.c_str())); + return err; + } + + cfg.set_integer_value (key, TOKEN, info.token); + cfg.set_string_value (key, IOR, info.ior.c_str()); + } + else if (rmode_ == Options::REPO_XML_FILE) + { + saveAsXML(this->fname_, *this); + } + return 0; +} + +Server_Info_Ptr +Locator_Repository::get_server (const ACE_CString& name) +{ + Server_Info_Ptr server(0); + servers().find (name, server); + return server; +} + +Activator_Info_Ptr +Locator_Repository::get_activator (const ACE_CString& name) +{ + Activator_Info_Ptr activator(0); + activators().find (name, activator); + return activator; +} + +int +Locator_Repository::remove_server (const ACE_CString& name) +{ + int ret = this->servers().unbind (name); + if (ret != 0) + { + return ret; + } + + if (rmode_ == Options::REPO_HEAP_FILE || rmode_ == Options::REPO_REGISTRY) + { + ACE_ASSERT(this->config_.get() != 0); + ACE_Configuration& cfg = *this->config_; + ACE_Configuration_Section_Key root; + int err = cfg.open_section (cfg.root_section(), SERVERS_ROOT_KEY, 0, root); + if (err != 0) + { + return 0; // Already gone. + } + ret = cfg.remove_section (root, name.c_str(), 1); + } + else if (rmode_ == Options::REPO_XML_FILE) + { + saveAsXML(this->fname_, *this); + } + return ret; +} + +int +Locator_Repository::remove_activator (const ACE_CString& name) +{ + int ret = activators().unbind (name); + if (ret != 0) + { + return ret; + } + + if (rmode_ == Options::REPO_HEAP_FILE || rmode_ == Options::REPO_REGISTRY) + { + ACE_ASSERT(this->config_.get() != 0); + ACE_Configuration& cfg = *this->config_; + ACE_Configuration_Section_Key root; + int err = cfg.open_section (cfg.root_section(), ACTIVATORS_ROOT_KEY, 0, root); + if (err != 0) + { + return 0; // Already gone. + } + ret = cfg.remove_section (root, name.c_str(), 1); + } + else if (rmode_ == Options::REPO_XML_FILE) + { + saveAsXML(this->fname_, *this); + } + return ret; +} + +Locator_Repository::SIMap& +Locator_Repository::servers(void) +{ + return server_infos_; +} + +Locator_Repository::AIMap& +Locator_Repository::activators(void) +{ + return activator_infos_; +} + +const char* +Locator_Repository::repo_mode() +{ + switch (rmode_) + { + case Options::REPO_XML_FILE: + case Options::REPO_HEAP_FILE: + return fname_.c_str(); + case Options::REPO_REGISTRY: + return "Registry"; + case Options::REPO_NONE: + return "Disabled"; + } + return "Disabled"; +} +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +template class ACE_Hash_Map_Entry<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> >; +template class ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex>, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; + +template class ACE_Hash_Map_Entry<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> >; +template class ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex>, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex>,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; + +template class ACE_Auto_Ptr<ACE_Configuration>; + +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> > +#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> + +#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> > +#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, ACE_Strong_Bound_Ptr<Activator_Info, ACE_Null_Mutex> ,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> + +#pragma instantiate ACE_Auto_Ptr<ACE_Configuration> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h new file mode 100644 index 00000000000..bd727cecfd3 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h @@ -0,0 +1,112 @@ +/* -*- C++ -*- */ + +//============================================================================= +/** +* @file Locator_Repository.h +* +* $Id$ +* +* This class implements the Repository for the Implementation Repository. +* +* @author Darrell Brunsch <brunsch@cs.wustl.edu> +* @author Priyanka Gontla <gontla_p@ociweb.com> +*/ +//============================================================================= + +#ifndef REPOSITORY_H +#define REPOSITORY_H + +#include "Server_Info.h" +#include "Activator_Info.h" +#include "Locator_Options.h" + +#include "ace/Hash_Map_Manager.h" +#include "ace/Configuration.h" +#include "ace/Auto_Ptr.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** +* @class Locator_Repository +* +* @brief Database containing all ImR persistent information. +* +*/ +class Locator_Repository +{ +public: + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + Server_Info_Ptr, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> SIMap; + + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + Activator_Info_Ptr, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> AIMap; + + Locator_Repository(); + + /// Initializes the Server Repository + int init (Options::RepoMode rmode, const ACE_CString& name); + + /// Add a new server to the Repository + int add_server (const ACE_CString& name, + const ACE_CString& aname, + const ACE_CString& startup_command, + const ImplementationRepository::EnvironmentList& environment_vars, + const ACE_CString& working_dir, + ImplementationRepository::ActivationMode activation, + int start_limit, + const ACE_CString& partial_ior = ACE_CString(""), + const ACE_CString& ior = ACE_CString(""), + ImplementationRepository::ServerObject_ptr svrobj = ImplementationRepository::ServerObject::_nil() + ); + /// Add a new activator to the Repository + int add_activator (const ACE_CString& name, + const CORBA::Long token, + const ACE_CString& ior = ACE_CString(""), + ImplementationRepository::Activator_ptr act = ImplementationRepository::Activator::_nil() + ); + + /// Update the associated information. + int update_server (const Server_Info& info); + /// Update the associated information. + int update_activator (const Activator_Info& info); + + /// Returns information related to startup. + Server_Info_Ptr get_server (const ACE_CString& name); + /// Returns information related to startup. + Activator_Info_Ptr get_activator (const ACE_CString& name); + + /// Removes the server from the Repository. + int remove_server (const ACE_CString& name); + /// Removes the activator from the Repository. + int remove_activator (const ACE_CString& name); + + /// Returns the internal hash map containing the server information. + SIMap& servers(void); + /// Returns the internal hash map containing the activator information. + AIMap& activators(void); + + const char* repo_mode(); + +private: + // Type mechanism to use for persistence. + Options::RepoMode rmode_; + // The in-memory list of the server information. + SIMap server_infos_; + // The in-memory list of the activator information. + AIMap activator_infos_; + // Several rmode_ values require this. + ACE_Auto_Ptr<ACE_Configuration> config_; + // XML requires the file name + ACE_CString fname_; +}; + + +#endif /* REPOSITORY_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp new file mode 100644 index 00000000000..db609bcdf41 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp @@ -0,0 +1,107 @@ +// $Id$ + +#include "Locator_XMLHandler.h" +#include "ace/OS_NS_strings.h" + +ACE_RCSID (ImplRepo_Service,Locator_XMLHandler,"$Id$") + +const char* Locator_XMLHandler::ROOT_TAG = "ImplementationRepository"; +const char* Locator_XMLHandler::SERVER_INFO_TAG = "Servers"; +const char* Locator_XMLHandler::ACTIVATOR_INFO_TAG = "Activators"; +const char* Locator_XMLHandler::ENVIRONMENT_TAG = "EnvironmentVariables"; + +Locator_XMLHandler::Locator_XMLHandler(Callback& cb) +: callback_(cb) +{ +} + +void +Locator_XMLHandler::startElement (const ACEXML_Char*, + const ACEXML_Char*, + const ACEXML_Char* qName, + ACEXML_Attributes* attrs ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + ACE_ASSERT(qName != 0); + if (ACE_OS::strcasecmp (qName, SERVER_INFO_TAG) == 0) + { + // We'll use this as a key to determine if we've got a valid record + this->server_name_ = ""; + this->env_vars_.clear(); + + if (attrs != 0 && attrs->getLength () == 8) + { + this->server_name_ = attrs->getValue((size_t)0); + this->activator_name_ = attrs->getValue((size_t)1); + this->command_line_ = attrs->getValue((size_t)2); + this->working_dir_ = attrs->getValue((size_t)3); + this->activation_ = attrs->getValue((size_t)4); + this->env_vars_.clear(); + int limit = ACE_OS::atoi (attrs->getValue((size_t)5)); + this->start_limit_ = limit; + this->partial_ior_ = attrs->getValue((size_t)6); + this->server_object_ior_ = attrs->getValue((size_t)7); + } + } + else if (ACE_OS::strcasecmp (qName, ACTIVATOR_INFO_TAG) == 0) + { + if (attrs != 0 && attrs->getLength () == 3) + { + ACE_CString aname = attrs->getValue((size_t)0); + ACE_CString token_str = attrs->getValue((size_t)1); + long token = ACE_OS::atoi (token_str.c_str()); + ACE_CString ior = attrs->getValue((size_t)2); + this->callback_.next_activator(aname, token, ior); + } + } + else if (ACE_OS::strcasecmp (qName, ENVIRONMENT_TAG) == 0) + { + if (attrs != 0 && attrs->getLength() == 2) + { + EnvVar ev; + ev.name = attrs->getValue((size_t)0); + ev.value = attrs->getValue((size_t)1); + this->env_vars_.push_back(ev); + } + } +} + +void +Locator_XMLHandler::endElement (const ACEXML_Char*, + const ACEXML_Char*, + const ACEXML_Char* qName ACEXML_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((ACEXML_SAXException)) +{ + ACE_ASSERT(qName != 0); + if (ACE_OS::strcasecmp (qName, SERVER_INFO_TAG) == 0 + && this->server_name_.length() > 0) + { + this->callback_.next_server(this->server_name_, + this->activator_name_, this->command_line_, + this->env_vars_, this->working_dir_, this->activation_, + this->start_limit_, this->partial_ior_, this->server_object_ior_); + } + // activator info is handled in the startElement +} + +bool +Locator_XMLHandler::EnvVar::operator==(const EnvVar& rhs) const +{ + return name == rhs.name && value == rhs.value; +} +bool +Locator_XMLHandler::EnvVar::operator!=(const EnvVar& rhs) const +{ + return ! (rhs == *this); +} + + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Array_Base<Locator_XMLHandler::EnvVar>; +template class ACE_Array<Locator_XMLHandler::EnvVar>; +template class ACE_Vector<Locator_XMLHandler::EnvVar>; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Array_Base<Locator_XMLHandler::EnvVar> +#pragma instantiate ACE_Array<Locator_XMLHandler::EnvVar> +#pragma instantiate ACE_Vector<Locator_XMLHandler::EnvVar> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h new file mode 100644 index 00000000000..98526ac5acf --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h @@ -0,0 +1,88 @@ +// -*- C++ -*- +//============================================================================= +/** + * @file Locator_XMLHandler.h + * + * $Id$ + * + * @author Justin Michel <michel_j@ociweb.com> + */ +//============================================================================= + +#ifndef Locator_XMLHandler_H +#define Locator_XMLHandler_H + +#include "ACEXML/common/DefaultHandler.h" + +#include "ace/Vector_T.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** + * Callback SAX XML Handler for parsing XML. + */ +class Locator_XMLHandler : public ACEXML_DefaultHandler +{ +public: + + // XML ELEMENT names + static const char* ROOT_TAG; + static const char* SERVER_INFO_TAG; + static const char* ENVIRONMENT_TAG; + static const char* ACTIVATOR_INFO_TAG; + + struct EnvVar { + ACE_CString name; + ACE_CString value; + bool operator==(const EnvVar&) const; // To allow Vector explicit instantiation + bool operator!=(const EnvVar&) const; // To allow Vector explicit instantiation + }; + + typedef ACE_Vector<EnvVar> EnvList; + + struct Callback { + virtual ~Callback() {} + + virtual void next_server (const ACE_CString& server_name, + const ACE_CString& aname, const ACE_CString& startup_cmd, + const EnvList& env_vars, const ACE_CString& working_dir, + const ACE_CString& actmode, int start_limit, + const ACE_CString& partial_ior, const ACE_CString& ior) = 0; + + virtual void next_activator (const ACE_CString& activator_name, + long token, + const ACE_CString& ior) = 0; + }; + + Locator_XMLHandler (Callback& cb); + + virtual void startElement (const ACEXML_Char* namespaceURI, + const ACEXML_Char* localName, + const ACEXML_Char* qName, + ACEXML_Attributes* atts ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + virtual void endElement (const ACEXML_Char* namespaceURI, + const ACEXML_Char* localName, + const ACEXML_Char* qName ACEXML_ENV_ARG_DECL) + ACE_THROW_SPEC ((ACEXML_SAXException)); + + private: + + // callback on completion of an element + Callback& callback_; + + ACE_CString server_name_; + ACE_CString activator_name_; + ACE_CString command_line_; + ACE_CString activation_; + ACE_CString working_dir_; + ACE_CString server_object_ior_; + ACE_CString partial_ior_; + int start_limit_; + EnvList env_vars_; +}; + +#endif /* Locator_XMLHandler_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/README.txt b/TAO/orbsvcs/ImplRepo_Service/README.txt index 34fe77ace81..35bfe25157c 100644 --- a/TAO/orbsvcs/ImplRepo_Service/README.txt +++ b/TAO/orbsvcs/ImplRepo_Service/README.txt @@ -184,9 +184,15 @@ Commandline Arguments that can be passed to ImplRepo_Service -d debug information -m support multicast discovery. -o generate the ior. +-x support persistence to the ImplRepo_Service. We use XML to support + persistence. Names of the activators registered with the locator, + their IORs, and the servers registered with each of the activators are + saved to the xml file. Use this option to pass the name of the file + where the data has to be saved. And, ofcourse, the ORB Options. + @subsection activator ImR_Activator ImR_Activators, as you might have guessed, do the real work of @@ -501,6 +507,11 @@ Admin Tool or via the "net" program on the command line: 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 +option instead. + @subsection serviceopts Service Options Any options that are specified along with -c install, will be saved in diff --git a/TAO/orbsvcs/ImplRepo_Service/Repository_Configuration.cpp b/TAO/orbsvcs/ImplRepo_Service/Repository_Configuration.cpp deleted file mode 100644 index c71f1348294..00000000000 --- a/TAO/orbsvcs/ImplRepo_Service/Repository_Configuration.cpp +++ /dev/null @@ -1,241 +0,0 @@ -#include "Repository_Configuration.h" -#include "Activator_NT_Service.h" - -#include "ace/Configuration.h" -#include "ace/OS_NS_stdio.h" - - -ACE_RCSID (ImplRepo_Service, - Repository_Configuration, - "$Id$") - - -Repository_Configuration::Repository_Configuration (const char *repository_mode) - : config_ (0) -{ - if (ACE_OS::strcmp (repository_mode, "x") == 0) - { - /// XML Mode : Dont do anything special - } - else if (ACE_OS::strcmp (repository_mode, "w") == 0) - { -#if defined (ACE_WIN32) - /// Win32 Repository. - HKEY root = - ACE_Configuration_Win32Registry::resolve_key(HKEY_LOCAL_MACHINE, - "Software\\TAO\\IR"); - ACE_NEW (this->config_, ACE_Configuration_Win32Registry(root)); - -#endif /* ACE_WIN32 */ - } - else if (ACE_OS::strcmp (repository_mode, "h") == 0) - { - ACE_NEW (this->config_, ACE_Configuration_Heap); - - if (this->config_ == 0) - { - ACE_ERROR ((LM_ERROR, - "Initialization of config_ didnt happen correctly\n")); - } - } -} - -Repository_Configuration::~Repository_Configuration (void) -{ - delete this->config_; -} - -const ACE_Configuration_Section_Key & -Repository_Configuration::root_section () -{ - ACE_ASSERT(this->config_ != 0); - return this->config_->root_section (); -} - -int -Repository_Configuration::open (void) -{ - // This method would have been called only if some kind of - // persistence is to be used: either the ACE_Configuration_Heap - // or the XML format of the file. - if (this->config_ != 0) - { - // Open the configuration heap. - ACE_Configuration_Heap *heap = - ACE_dynamic_cast (ACE_Configuration_Heap *, - this->config_); - ACE_ASSERT(heap != 0); - return heap->open (); - } - - // The persistence file type is to be in XML format. Dont do - // anything here. Just return. - return 0; -} - - -int -Repository_Configuration::open (const char *file_name) -{ - if (this->config_ == 0) - { - FILE *fp = ACE_OS::fopen (file_name, "w"); - - if (fp == 0) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Couldnt open the file %s\n", file_name), - -1); - } - - // @@@ Initial setup: write the DTD here. - ACE_OS::fprintf (fp, - "<?xml version=\"1.0\"?>\n"); - ACE_OS::fprintf (fp, - "<!DOCTYPE SERVER_REPOSITORY>\n"); - ACE_OS::fclose (fp); - } - else - { - ACE_Configuration_Heap *heap = - ACE_dynamic_cast (ACE_Configuration_Heap *, - this->config_); - ACE_ASSERT(heap != 0); - return heap->open (file_name); - } - return 0; -} - -int -Repository_Configuration::open_section (const ACE_Configuration_Section_Key& base, - const char* sub_section, - int create, - ACE_Configuration_Section_Key& result) -{ - if (this->config_ == 0) - { - /// @@ May be I need to write the initial DTD etc stuff here. - } - else - { - return this->config_->open_section (base, - sub_section, - create, - result); - } - return 0; - -} - -int -Repository_Configuration::remove_section (const ACE_Configuration_Section_Key& key, - const char* sub_section, - int recursive) -{ - if (this->config_ == 0) - { - /// @@ May be I need to write the initial DTD etc stuff here. - } - else - { - return this->config_->remove_section (key, - sub_section, - recursive); - } - - return 0; -} - -int -Repository_Configuration::enumerate_sections (const ACE_Configuration_Section_Key& key, - int Index, - ACE_CString& name) -{ - if (this->config_ != 0) - { - return this->config_->enumerate_sections (key, - Index, - name); - } - - /// @@ May be I need to write the initial DTD etc stuff here. - return 0; -} - -int -Repository_Configuration::set_string_value (const ACE_Configuration_Section_Key& key, - const char* name, - const ACE_CString& value) -{ - if (this->config_ == 0) - { - /// @@ May be I need to write the initial DTD etc stuff here. - } - else - { - return this->config_->set_string_value (key, - name, - value); - } - - return 0; - -} - -int -Repository_Configuration::set_integer_value (const ACE_Configuration_Section_Key& key, - const char* name, - u_int value) -{ - if (this->config_ == 0) - { - /// @@ May be I need to write the initial DTD etc stuff here. - } - else - { - return this->config_->set_integer_value (key, - name, - value); - } - - return 0; -} - -int -Repository_Configuration::get_string_value (const ACE_Configuration_Section_Key& key, - const char* name, - ACE_CString& value) -{ - if (this->config_ == 0) - { - /// @@ May be I need to write the initial DTD etc stuff here. - } - else - { - return this->config_->get_string_value (key, - name, - value); - } - - return 0; -} - -int -Repository_Configuration::get_integer_value (const ACE_Configuration_Section_Key& key, - const char* name, - u_int& value) -{ - if (this->config_ == 0) - { - /// @@ May be I need to write the initial DTD etc stuff here. - } - else - { - return this->config_->get_integer_value (key, - name, - value); - } - - return 0; - - } diff --git a/TAO/orbsvcs/ImplRepo_Service/Repository_Configuration.h b/TAO/orbsvcs/ImplRepo_Service/Repository_Configuration.h deleted file mode 100644 index 786cdcd9cd4..00000000000 --- a/TAO/orbsvcs/ImplRepo_Service/Repository_Configuration.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Repository_Configuration.h - * - * $Id$ - * - * @brief Class to maintain the non-Win32 Registry Server - * Configuration. Also is a wrapper around ACE_Configuration_Heap - * class. - * - * @author Priyanka Gontla <gontla_p@ociweb.com> - */ -//============================================================================= - -#ifndef REPOSITORY_CONFIGURATION_H -#define REPOSITORY_CONFIGURATION_H - -#include "ace/Configuration.h" - -/** - * @class Repository_Configuration - * - * @brief Maintains the server configurations. - * - * Class to help maintain the xml and non-win32 registry configuration. - */ -class Repository_Configuration -{ - public: - - /// Default Constructor - Repository_Configuration (const char *repository_mode); - - /// Destructor - ~Repository_Configuration (); - - const ACE_Configuration_Section_Key& root_section (); - - /// - int open (); - - /// opens a configuration based on a file name - int open (const char* file_name); - - int open_section (const ACE_Configuration_Section_Key& base, - const char* sub_section, - int create, ACE_Configuration_Section_Key& result); - - int remove_section (const ACE_Configuration_Section_Key& key, - const char* sub_section, - int recursive); - - int enumerate_sections (const ACE_Configuration_Section_Key& key, - int Index, - ACE_CString& name); - - int set_string_value (const ACE_Configuration_Section_Key& key, - const char* name, - const ACE_CString& value); - - int set_integer_value (const ACE_Configuration_Section_Key& key, - const char* name, - u_int value); - - int get_string_value (const ACE_Configuration_Section_Key& key, - const char* name, - ACE_CString& value); - - int get_integer_value (const ACE_Configuration_Section_Key& key, - const char* name, - u_int& value); - - private: - - ACE_Configuration *config_; - -}; - -#endif /* REPOSITORY_CONFIGURATION_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp b/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp index d2d503911ec..63faa10e10f 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp @@ -1,67 +1,63 @@ +// $Id$ #include "Server_Info.h" - -ACE_RCSID (ImplRepo_Service, - Server_Info, - "$Id$") - - -Server_Info::Server_Info ( - const ACE_CString POA_name, - const ACE_CString logical_server_name, - const ACE_CString startup_command, - const ImplementationRepository::EnvironmentList environment_vars, - const ACE_CString working_dir, - const ImplementationRepository::ActivationMode activation) - : starting_up_ (false), - logical_server_name_ (logical_server_name), - POA_name_ (POA_name), - startup_command_ (startup_command), - environment_vars_ (environment_vars), - working_dir_ (working_dir), - location_ (""), - server_object_ior_ (""), - activation_ (activation) +Server_Info::Server_Info +( + const ACE_CString& server_name, + const ACE_CString& aname, + const ACE_CString& cmdline, + const ImplementationRepository::EnvironmentList& env, + const ACE_CString& working_dir, + ImplementationRepository::ActivationMode amode, + int limit, + const ACE_CString& partial_ior, + const ACE_CString& server_ior, + ImplementationRepository::ServerObject_ptr svrobj + ) + : name(server_name) + , activator(aname) + , cmdline(cmdline) + , env_vars(env) + , dir(working_dir) + , activation_mode(amode) + , start_limit (limit) + , partial_ior(partial_ior) + , ior(server_ior) + , server(ImplementationRepository::ServerObject::_duplicate(svrobj)) + , start_count(0) { } - -Server_Info::~Server_Info (void) +ImplementationRepository::ServerInformation* +Server_Info::createImRServerInfo(ACE_ENV_SINGLE_ARG_DECL) { + ImplementationRepository::ServerInformation* info; + ACE_NEW_THROW_EX (info, ImplementationRepository::ServerInformation, CORBA::NO_MEMORY()); + + info->server = name.c_str(); + info->startup.command_line = cmdline.c_str(); + info->startup.environment = env_vars; + info->startup.working_directory = dir.c_str(); + info->startup.activation = activation_mode; + info->startup.activator = activator.c_str(); + info->startup.start_limit = start_limit; + info->partial_ior = partial_ior.c_str(); + + return info; } - -// Updates information that is relevant only when an instance -// of the server is running. void -Server_Info::update_running_info (const ACE_CString location, - const ACE_CString server_object_ior) +Server_Info::reset(void) { - this->location_ = location; - this->server_object_ior_ = server_object_ior; - this->starting_up_ = false; + ior = ""; + partial_ior = ""; + last_ping = ACE_Time_Value::zero; + server = ImplementationRepository::ServerObject::_nil(); + // start_count = 0; Note : We can't do this, because it would be reset during startup. } - -void -Server_Info::get_startup_info ( - ACE_CString &logical_server_name, - ACE_CString &startup_command, - ImplementationRepository::EnvironmentList &environment_vars, - ACE_CString &working_dir, - ImplementationRepository::ActivationMode &activation) -{ - logical_server_name = this->logical_server_name_; - startup_command = this->startup_command_; - environment_vars = this->environment_vars_; - working_dir = this->working_dir_; - activation = this->activation_; -} - -void -Server_Info::get_running_info (ACE_CString &location, - ACE_CString &server_object_ior) -{ - location = this->location_; - server_object_ior = this->server_object_ior_; -} +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex>; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Info.h b/TAO/orbsvcs/ImplRepo_Service/Server_Info.h index 090eb2bb603..b6e451d9419 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Server_Info.h +++ b/TAO/orbsvcs/ImplRepo_Service/Server_Info.h @@ -1,5 +1,3 @@ -/* -*- C++ -*- */ - //============================================================================= /** * @file Server_Info.h @@ -12,102 +10,66 @@ * @author Darrell Brunsch <brunsch@cs.wustl.edu> * @author Priyanka Gontla <gontla_p@ociweb.com> */ -//============================================================================= - #ifndef SERVER_INFO_H #define SERVER_INFO_H -#include "XML_ContentHandler.h" +#include "ace/Bound_Ptr.h" #include "tao/PortableServer/ImplRepoC.h" -/** - * @class Server_Info - * - * @brief Information about IMR registered servers. - * - * Contains all the necessary information about the server including - * Information on how to start it up and where it is running. - */ -class Server_Info -{ -public: - // = Constructors - - /// Initialize the command_line and working_dir. - Server_Info (const ACE_CString POA_name, - const ACE_CString logical_server_name, - const ACE_CString startup_command, - const ImplementationRepository::EnvironmentList - environment_vars, - const ACE_CString working_dir, - const ImplementationRepository::ActivationMode activation); - - // = Destructors - - /// The only destructor there is. - ~Server_Info (void); - - /// Updates information that is relevant only when an instance - /// of the server is running. - void update_running_info (const ACE_CString location, - const ACE_CString server_object_ior); - - /// Returns startup information. - void get_startup_info (ACE_CString &logical_server_name, - ACE_CString &startup_command, - ImplementationRepository::EnvironmentList - &environment_vars, - ACE_CString &working_dir, - ImplementationRepository::ActivationMode - &activation); - - /// Returns information about a running instance. - void get_running_info (ACE_CString &location, - ACE_CString &server_object_ior); - - // ActivationMode get_activation (void); - // Get the activation mode. +#include "ace/SString.h" - // @@ Does this belong here? - // int startup (); - // Starts up the server based on the information. - // Returns: 0 if successful - // -1 if there is no registration command (it has to be manually - // restarted) - - /// This is a flag to determine if the process has already been spawned - /// and we are just waiting for it to start up. - bool starting_up_; - -private: - /// Which server process this poa is grouped in. - ACE_CString logical_server_name_; - - /// The name of the POA. - ACE_CString POA_name_; +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ +/** +* @brief Information about IMR registered servers. +*/ +struct Server_Info +{ + Server_Info (const ACE_CString& server_name, + const ACE_CString& aname, + const ACE_CString& cmdline, + const ImplementationRepository::EnvironmentList& env, + const ACE_CString& working_dir, + ImplementationRepository::ActivationMode amode, + int start_limit, + const ACE_CString& partial_ior = ACE_CString(""), + const ACE_CString& server_ior = ACE_CString(""), + ImplementationRepository::ServerObject_ptr svrobj = ImplementationRepository::ServerObject::_nil() + ); + + /// Convert to the corba type + ImplementationRepository::ServerInformation* createImRServerInfo(ACE_ENV_SINGLE_ARG_DECL); + + void reset(); + + /// The name of the server. + ACE_CString name; + /// The name of the activator in which this server runs + ACE_CString activator; /// The command line startup command (program and arguments). - ACE_CString startup_command_; - + ACE_CString cmdline; /// Environment Variables. - ImplementationRepository::EnvironmentList environment_vars_; - + ImplementationRepository::EnvironmentList env_vars; /// The working directory. - ACE_CString working_dir_; - + ACE_CString dir; + /// The type of activation this supports. + ImplementationRepository::ActivationMode activation_mode; + /// Limit of retries to start the server + int start_limit; /// Current endpoint used by the server. - ACE_CString location_; - + ACE_CString partial_ior; /// IOR of the server object in the server. - ACE_CString server_object_ior_; - - /// The type of activation this supports. - ImplementationRepository::ActivationMode activation_; - - // No copying allowed. - void operator= (Server_Info &); - Server_Info (Server_Info &); + ACE_CString ior; + /// The timestamp of the last time we verified the server is alive + ACE_Time_Value last_ping; + /// The cached server object + ImplementationRepository::ServerObject_var server; + int start_count; }; +typedef ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> Server_Info_Ptr; + #endif /* SERVER_INFO_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Repository.cpp b/TAO/orbsvcs/ImplRepo_Service/Server_Repository.cpp deleted file mode 100644 index 7ef2dc52637..00000000000 --- a/TAO/orbsvcs/ImplRepo_Service/Server_Repository.cpp +++ /dev/null @@ -1,726 +0,0 @@ -#include "Server_Repository.h" -#include "XML_ContentHandler.h" -#include "Activator_Options.h" - -#include "ACEXML/parser/parser/Parser.h" -#include "ACEXML/common/FileCharStream.h" - -#include "ace/OS_NS_unistd.h" - -ACE_RCSID (ImplRepo_Service, - Server_Repository, - "$Id$") - -int -Server_Repository::init (void) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - if (rmode != Options::REPO_XML_FILE) - { - Repository_Configuration *config = OPTIONS::instance ()->config (); - ACE_ASSERT(config != 0); - - // iterate through the list of registered servers and register them - - config->open_section (config->root_section (), - ACE_LIB_TEXT ("Servers"), - 1, - this->servers_); - int index = 0; - ACE_CString name; - - while (config->enumerate_sections (servers_, index, name) == 0) - { - ACE_CString logical, startup, working_dir; - u_int activation_val = 0; - ImplementationRepository::ActivationMode activation; - - ImplementationRepository::EnvironmentList environment_vars; - - ACE_Configuration_Section_Key server_key; - int error = 0; - - error += config->open_section (this->servers_, - name.c_str(), - 0, - server_key); - - error += config->get_string_value (server_key, - ACE_LIB_TEXT ("LogicalServer"), - logical); - - error += config->get_string_value (server_key, - ACE_LIB_TEXT ("StartupCommand"), - startup); - - error += config->get_string_value (server_key, - ACE_LIB_TEXT ("WorkingDir"), - working_dir); - - error += config->get_integer_value (server_key, - ACE_LIB_TEXT ("Activation"), - activation_val); - - activation = - ACE_static_cast (ImplementationRepository::ActivationMode, - activation_val); - - // Maybe environments variables?? need a straightforward - // way to store env vars. - - if (error != 0) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Error reading configuration data for ") - ACE_TEXT ("service '%s',skipping\n"), - name.c_str ())); - } - else - { - this->add (name, - logical, - startup, - environment_vars, - working_dir, - activation); - } - - index++; - } - } - else - { - /// @@ Not quite sure what I want to do here .. leave for - /// now. I guess similar stuff like check if that particular - /// server info exists etc. - } - - return 0; -} - - -// Add a new server to the Repository - -int -Server_Repository::add ( - const ACE_CString& POA_name, - const ACE_CString& logical_server_name, - const ACE_CString& startup_command, - const ImplementationRepository::EnvironmentList& environment_vars, - const ACE_CString& working_dir, - const ImplementationRepository::ActivationMode& activation - ) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - if (rmode != Options::REPO_XML_FILE) - { - Repository_Configuration *config = OPTIONS::instance ()->config (); - ACE_ASSERT(config != 0); - - // @@ Add this to the persistent configuration; environment_vars?? - ACE_Configuration_Section_Key server; - config->open_section (this->servers_, - POA_name.c_str(), - 1, - server); - - config->set_string_value (server, - ACE_LIB_TEXT ("LogicalServer"), - logical_server_name); - - config->set_string_value (server, - ACE_LIB_TEXT ("StartupCommand"), - startup_command); - - config->set_string_value (server, - ACE_LIB_TEXT ("WorkingDir"), - working_dir); - - config->set_integer_value (server, - ACE_LIB_TEXT ("Activation"), - activation); - - Server_Info *new_server = 0; - ACE_NEW_RETURN (new_server, - Server_Info (POA_name, - logical_server_name, - startup_command, - environment_vars, - working_dir, - activation), - -1); - - return this->repository_.bind (POA_name, new_server); - } - else - { - ACE_CString filename = OPTIONS::instance ()->file_name (); - - FILE *fp = ACE_OS::fopen (filename.c_str(), "r"); - - if (fp != 0) - { - ACE_TCHAR buffer[4096]; - while (ACE_OS::fgets (buffer, sizeof (buffer), fp)) - { - /// Obviously, we need to/can update only if we find an - /// entry for it in the xml file. - ACE_TCHAR* found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found != 0) - { - /// An entry found for the POA_name. So, dont - /// add it again. - ACE_DEBUG ((LM_DEBUG, - "ImR Activator: The %s is already added.\n", POA_name.c_str ())); - - ACE_OS::fclose (fp); - - return 0; - } - } - } - - /// If control comes here, it means this server isnt added already. - fp = ACE_OS::fopen (filename.c_str(), "a"); - - if (fp == 0) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Coudnt open the file to append\n"), - -1); - } - - ACE_CString server_info = "<SERVER_INFORMATION>"; - server_info += "<Server>"; - server_info += POA_name.c_str (); - server_info += "</Server>\n<StartupOptions>\n<Command_Line>"; - server_info += startup_command; - server_info += "</Command_Line>\n<WorkingDir>"; - server_info += working_dir; - server_info += "</WorkingDir>\n<Activation>"; - server_info += OPTIONS::instance ()->convert_str (activation); - server_info += "</Activation>\n</StartupOptions>\n</SERVER_INFORMATION>\n"; - - ACE_OS::fprintf(fp, server_info.c_str()); - ACE_OS::fclose(fp); - - return 0; - } -} - -// Update the associated process information. - -int -Server_Repository::update (const ACE_CString& POA_name, - const ACE_CString& location, - const ACE_CString& server_object_ior) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - if (rmode != Options::REPO_XML_FILE) - { - Server_Info *server = 0; - int retval = this->repository_.find (POA_name, server); - - // Only fill in data if it was found - if (retval == 0) - { - ACE_ASSERT(server != 0); - server->update_running_info (location, server_object_ior); - } - - return retval; - } - else - { - ACE_CString filename = OPTIONS::instance ()->file_name (); - - FILE *fp = ACE_OS::fopen (filename.c_str(), "r+"); - ACE_ASSERT(fp != 0); - - ACE_TCHAR buffer[4096]; - - while (ACE_OS::fgets (buffer, sizeof (buffer), fp)) - { - /// Obviously, we need to/can update only if we find an - /// entry for it in the xml file. - ACE_TCHAR* found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found != 0) - { - /// found an entry. So, need to update the entry - /// information. - this->handler_->update_running_information (POA_name, - location, - server_object_ior); - return 0; - } - } - return -1; - } -} - -// Returns information related to startup. - -int -Server_Repository::get_startup_info ( - const ACE_CString& POA_name, - ACE_CString& logical_server_name, - ACE_CString& startup_command, - ImplementationRepository::EnvironmentList& environment_vars, - ACE_CString& working_dir, - ImplementationRepository::ActivationMode& activation - ) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - if (rmode != Options::REPO_XML_FILE) - { - Server_Info* server = 0; - int retval = this->repository_.find (POA_name, server); - - // Only fill in data if it was found - if (retval == 0) - { - ACE_ASSERT(server != 0); - server->get_startup_info (logical_server_name, - startup_command, - environment_vars, - working_dir, - activation); - } - return retval; - } - else - { - ACEXML_FileCharStream *fstm = 0; - ACE_NEW_RETURN (fstm, - ACEXML_FileCharStream (), - 1); - - const char* fname = OPTIONS::instance()->file_name().c_str(); - if (fstm->open (fname) != 0) - { - ACE_ERROR((LM_ERROR, ACE_LIB_TEXT("Fail to open XML file: %s\n"), fname)); - return 1; - } - - this->handler_ = new XML_ContentHandler (POA_name.c_str ()); - - ACEXML_Parser parser; - - ACEXML_InputSource input(fstm); - - parser.setContentHandler (this->handler_); - parser.setDTDHandler (this->handler_); - parser.setErrorHandler (this->handler_); - parser.setEntityResolver (this->handler_); - - ACEXML_TRY_NEW_ENV - { - parser.parse (&input ACEXML_ENV_ARG_PARAMETER); - ACEXML_TRY_CHECK; - } - ACEXML_CATCH (ACEXML_Exception, ex) - { - ex.print(); - return -1; - } - ACEXML_ENDTRY; - - ACE_CString activation_mode; - - this->handler_->get_startup_information (logical_server_name, - startup_command, - working_dir, - activation_mode); - - activation = OPTIONS::instance ()->convert_mode (activation_mode.c_str ()); - - return 0; - } -} - - -// Returns information related to a running copy. - -int -Server_Repository::get_running_info (const ACE_CString& POA_name, - ACE_CString& location, - ACE_CString& server_object_ior) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - - if (rmode != Options::REPO_XML_FILE) - { - Server_Info *server; - int retval = this->repository_.find (POA_name, server); - - // Only fill in data if it was found - if (retval == 0) - { - ACE_ASSERT(server != 0); - server->get_running_info (location, server_object_ior); - } - return retval; - } - else - { - ACE_CString filename = OPTIONS::instance ()->file_name (); - - FILE *fp = ACE_OS::fopen (filename.c_str(), "r"); - ACE_ASSERT(fp != 0); - - ACE_TCHAR buffer[4096]; - - while (ACE_OS::fgets (buffer, sizeof (buffer), fp)) - { - ACE_TCHAR* found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found != 0) - { - /// Found an entry for the POA_name. So, we can proceed. - this->handler_->get_running_information (POA_name, - location, - server_object_ior); - return 0; - } - } - /// If control comes here.. implies, there is no entry for the - /// POA_name. - return -1; - } -} - - -// Checks the starting_up_ variable in the Server_Info and -// returns the previous value or -1 if the POA_name wasn't found - -int -Server_Repository::starting_up (const ACE_CString& POA_name, - int new_value) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - - if (rmode != Options::REPO_XML_FILE) - { - Server_Info *server; - int retval = this->repository_.find (POA_name, server); - - // Only fill in data if it was found - if (retval == 0) - { - ACE_ASSERT(server != 0); - retval = server->starting_up_ ? 1 : 0; - server->starting_up_ = new_value != 0; - } - return retval; - } - else - { - ACE_CString filename = OPTIONS::instance ()->file_name (); - - FILE *fp = ACE_OS::fopen (filename.c_str(), "r"); - ACE_ASSERT(fp != 0); - - ACE_TCHAR buffer[4096]; - - while (ACE_OS::fgets (buffer, sizeof (buffer), fp)) - { - ACE_TCHAR* found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found != 0) - { - int retval; - /// Found an entry for the POA_name. So, we can proceed. - this->handler_->get_startup_value (POA_name, retval); - this->handler_->set_startup_value (POA_name, new_value); - return retval; - } - } - /// If control comes here.. implies, there is no entry for the - /// POA_name. - return -1; - } -} - -// Same as above but does not alter the value - -int -Server_Repository::starting_up (const ACE_CString& POA_name) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - - if (rmode != Options::REPO_XML_FILE) - { - Server_Info *server; - - int retval = this->repository_.find (POA_name, server); - - // Only fill in data if it was found - if (retval == 0) - { - ACE_ASSERT(server != 0); - retval = server->starting_up_ != 0; - } - - return retval; - } - else - { - ACE_CString filename = OPTIONS::instance ()->file_name (); - - FILE *fp = ACE_OS::fopen (filename.c_str(), "r"); - ACE_ASSERT(fp != 0); - - ACE_TCHAR buffer[4096]; - - while (ACE_OS::fgets (buffer, sizeof (buffer), fp)) - { - ACE_TCHAR* found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found != 0) - { - int retval; - /// Found an entry for the POA_name. So, we can proceed. - this->handler_->get_startup_value (POA_name, retval); - return retval; - } - } - /// If control comes here.. implies, there is no entry for the - /// POA_name. - return -1; - } -} - - -// Removes the server from the Repository. - -int -Server_Repository::remove (const ACE_CString& POA_name) -{ - int rmode = OPTIONS::instance ()->repository_mode (); - - if (rmode != Options::REPO_XML_FILE) - { - Repository_Configuration *config = OPTIONS::instance ()->config (); - ACE_ASSERT(config != 0); - // Remove the persistent configuration information - config->remove_section (this->servers_, - POA_name.c_str(), - 1); - return this->repository_.unbind (POA_name); - } - else - { - ACE_CString filename = OPTIONS::instance ()->file_name (); - - FILE *fp = ACE_OS::fopen (filename.c_str(), "r"); - ACE_ASSERT(fp != 0); - - /// Have a temporary file - CORBA::String_var temp_file = "temporary_file"; - - FILE *fp_temp = ACE_OS::fopen (temp_file.in (), "w"); - ACE_ASSERT(fp_temp != 0); - - ACE_TCHAR buffer[4096]; - - bool remove_section = false; - // int dtd_section = 0; - - while (ACE_OS::fgets (buffer, sizeof (buffer), fp)) - { - if (! remove_section) - { - ACE_TCHAR* found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found == 0) - { - ACE_OS::fprintf (fp_temp, buffer); - } - else - { - remove_section = true; - } - } - else - { - ACE_TCHAR* found = ACE_OS::strstr (buffer, "</SERVER_INFORMATION>"); - - if (found != 0) - remove_section = false; - } - } - - ACE_OS::fclose (fp_temp); - ACE_OS::fclose (fp); - - // Now copy the temporary file to the original file. - fp_temp = ACE_OS::fopen (temp_file.in (), "r"); - ACE_ASSERT(fp_temp != 0); - - fp = ACE_OS::fopen (filename.c_str(), "w"); - ACE_ASSERT(fp != 0); - - while (ACE_OS::fgets (buffer, sizeof (buffer), fp_temp)) - { - ACE_OS::fprintf (fp, buffer); - } - - ACE_OS::fclose (fp); - ACE_OS::fclose (fp_temp); - ACE_OS::unlink (temp_file.in ()); - return 0; - } - /* - /// There is no support for DTD in the XML parser as of - /// now. Will uncomment this part when the support is - /// added. - - if (dtd_section == 0) - { - found = ACE_OS::strstr (buffer, "]>"); - - if (found != 0) - { - dtd_section = 1; - remove_section = 0; - } - - ACE_OS::fprintf (fp_temp, - buffer); - } - else - { - if (remove_section == 0) - { - found = ACE_OS::strstr (buffer, POA_name.c_str ()); - - if (found == 0) - { - ACE_OS::fprintf (fp_temp, - buffer); - } - else - { - remove_section = 1; - } - } - else - { - found = ACE_OS::strstr (buffer, "</SERVER_INFORMATION>"); - - if (found != 0) - remove_section = 0; - } - } - - } - ACE_OS::fclose (fp_temp); - ACE_OS::fclose (fp); - - // Now copy the temporary file to the original file. - fp_temp = ACE_OS::fopen (temp_file, "r"); - - fp = ACE_OS::fopen (filename, "w"); - - while (ACE_OS::fgets (buffer, 4096, fp_temp)) - { - ACE_OS::fprintf (fp, - buffer); - } - - ACE_OS::fclose (fp); - ACE_OS::fclose (fp_temp); - ACE_OS::unlink (temp_file); - } - */ -} - -int -Server_Repository::write_to_xml ( - const ACE_CString&, - const ACE_CString&, - const ACE_CString&, - const ImplementationRepository::EnvironmentList&, - const ACE_CString&, - const ImplementationRepository::ActivationMode&) -{ - /* - ACE_TCHAR *filename = "trial.xml"; - - ACE_Configuration_Heap *heap = 0; - ACE_NEW_RETURN (heap, ACE_Configuration_Heap, -1); - - if (heap->open (filename) != 0) - { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Error: Opening persistent heap file '%s'\n"), - filename)); - } - - heap->open_section (heap->root_section (), - "Trail_Servers", - 1, - - */ - return 0; -} - - -// Returns a new iterator that travels over the repository. - -Server_Repository::HASH_IMR_MAP::ITERATOR * -Server_Repository::new_iterator (void) -{ - HASH_IMR_MAP::ITERATOR *hash_iter = 0; - ACE_NEW_RETURN (hash_iter, - Server_Repository::HASH_IMR_MAP::ITERATOR (this->repository_), - 0); - - return hash_iter; -} - - -// Returns the number of entries in the repository. - -size_t -Server_Repository::get_repository_size (void) -{ - return this->repository_.current_size (); -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Hash_Map_Entry<ACE_CString, Server_Info *>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>; - -#if defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500) -// This template is already defined in TAO, but Sun/CC 5.0 is broken -template class ACE_Equal_To<ACE_CString>; -#endif /* __SUNPRO_CC */ -// Instantiate for ACE_WString because ACE_CString can be either -// ACE_CString or ACE_WString. -template class ACE_Equal_To<ACE_WString>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, Server_Info *> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, Server_Info *,ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> - -#if defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500) -// This template is already defined in TAO, but Sun/CC 5.0 is broken -#pragma instantiate ACE_Equal_To<ACE_CString> -#endif /* __SUNPRO_CC */ -// Instantiate for ACE_WString because ACE_CString can be either -// ACE_CString or ACE_WString. -#pragma instantiate ACE_Equal_To<ACE_WString> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Repository.h b/TAO/orbsvcs/ImplRepo_Service/Server_Repository.h deleted file mode 100644 index 75e0b484d38..00000000000 --- a/TAO/orbsvcs/ImplRepo_Service/Server_Repository.h +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file Server_Repository.h - * - * $Id$ - * - * This class implements the Repository for the Implementation Repository. - * - * @author Darrell Brunsch <brunsch@cs.wustl.edu> - * @author Priyanka Gontla <gontla_p@ociweb.com> - */ -//============================================================================= - -#ifndef REPOSITORY_H -#define REPOSITORY_H - -#include "Server_Info.h" - -#include "ace/Hash_Map_Manager.h" -#include "ace/Configuration.h" - - -class XML_ContentHandler; - - -/** - * @class Server_Repository - * - * @brief Repository of Server_Infos. - * - * Handles the storage, updating, and startup of servers. - */ -class Server_Repository -{ -public: - typedef ACE_Hash_Map_Manager_Ex<ACE_CString, - Server_Info *, - ACE_Hash<ACE_CString>, - ACE_Equal_To<ACE_CString>, - ACE_Null_Mutex> HASH_IMR_MAP; - - /// Initializes the Server Repository - int init (void); - - /// Add a new server to the Repository - int add (const ACE_CString& POA_name, - const ACE_CString& logical_server_name, - const ACE_CString& startup_command, - const ImplementationRepository::EnvironmentList& environment_vars, - const ACE_CString& working_dir, - const ImplementationRepository::ActivationMode& activation); - - /// Update the associated process information. - int update (const ACE_CString& POA_name, - const ACE_CString& location, - const ACE_CString& server_object_ior); - - /// Returns information related to startup. - int get_startup_info (const ACE_CString& POA_name, - ACE_CString& logical_server_name, - ACE_CString& startup_command, - ImplementationRepository::EnvironmentList& environment_vars, - ACE_CString& working_dir, - ImplementationRepository::ActivationMode& activation); - - /// Returns information related to a running copy. - int get_running_info (const ACE_CString& POA_name, - ACE_CString& location, - ACE_CString& server_object_ior); - - /// Checks the starting_up_ variable in the Server_Info and - /// returns the previous value or -1 if the POA_name wasn't found - int starting_up (const ACE_CString& POA_name, int new_value); - - /// Same as above but does not alter the value. - int starting_up (const ACE_CString& POA_name); - - /// Removes the server from the Repository. - int remove (const ACE_CString& POA_name); - - /// Write into the xml file. - int write_to_xml (const ACE_CString& POA_name, - const ACE_CString& logical_server_name, - const ACE_CString& startup_command, - const ImplementationRepository::EnvironmentList& environment_vars, - const ACE_CString& working_dir, - const ImplementationRepository::ActivationMode& activation); - /// Returns a new iterator that travels over the repository. - HASH_IMR_MAP::ITERATOR *new_iterator (void); - - /// Returns the number of entries in the repository. - size_t get_repository_size (void); - -private: - - HASH_IMR_MAP repository_; - ACE_Configuration_Section_Key servers_; - XML_ContentHandler *handler_; -}; - - -#endif /* REPOSITORY_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp b/TAO/orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp deleted file mode 100644 index b3a42b2c304..00000000000 --- a/TAO/orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp +++ /dev/null @@ -1,289 +0,0 @@ -#include "XML_ContentHandler.h" - - -ACE_RCSID (ImplRepo_Service, - XML_ContentHandler, - "$Id$") - - -XML_ContentHandler::XML_ContentHandler (const char *server_name) - : server_name_ (server_name), - found_server_entry_ (false), - command_line_entry_ (false), - working_dir_entry_ (false), - environment_vars_entry_ (false), - activation_entry_ (false), - server_object_ior_entry_ (false), - location_entry_ (false), - startup_value_ (false) -{ - // no-op -} - -XML_ContentHandler::~XML_ContentHandler (void) -{ - // no-op -} - -void -XML_ContentHandler::characters (const ACEXML_Char *cdata, - int /* start */, - int /* end */ - ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - if (ACE_OS::strcmp (cdata, this->server_name_.c_str ()) == 0) - { - this->found_server_entry_ = true; - } - - if (this->command_line_entry_ ) - { - this->command_line_ = cdata; - this->command_line_entry_ = false; - } - else if (this->working_dir_entry_ ) - { - this->working_dir_ = cdata; - this->working_dir_entry_ = false; - } - else if (this->activation_entry_ ) - { - this->activation_ = cdata; - this->activation_entry_ = false; - } - else if (this->environment_vars_entry_ ) - { - this->environment_vars_ = cdata; - this->environment_vars_entry_ = false; - } - else if (this->location_entry_ ) - { - this->location_ = cdata; - this->location_entry_ = false; - } - else if (this->server_object_ior_entry_ ) - { - this->server_object_ior_ = cdata; - this->server_object_ior_entry_ = false; - } -} - -void -XML_ContentHandler::endDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ -} - -void -XML_ContentHandler::endElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * /* qName */ ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ -} - -void -XML_ContentHandler::endPrefixMapping (const ACEXML_Char * /* prefix */ ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // cout << "* Event endPrefixMapping (" << prefix << ") ***************" << endl; -} - -void -XML_ContentHandler::ignorableWhitespace (const ACEXML_Char *, - int, - int ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // cout << "* Event ignorableWhitespace () ***************" << endl; -} - -void -XML_ContentHandler::processingInstruction (const ACEXML_Char * /* target */, - const ACEXML_Char * /* data */ ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // this->print_indent (); -// cout << "<?" << target << " " -// << data << "?>" << endl; -} - -void -XML_ContentHandler::setDocumentLocator (ACEXML_Locator *) -{ - // cout << "* Event setDocumentLocator () ***************" << endl; -} - -void -XML_ContentHandler::skippedEntity (const ACEXML_Char * /* name */ ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // cout << "* Event skippedEntity (" << name << ") ***************" << endl; -} - -void -XML_ContentHandler::startDocument ( ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // cout << "* Event startDocument () ***************" << endl; -} - -void -XML_ContentHandler::startElement (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *qName, - ACEXML_Attributes * ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - if (this->found_server_entry_ ) - { - if (ACE_OS::strcmp (qName, "Command_Line") == 0) - { - this->command_line_entry_ = true; - } - else if (ACE_OS::strcmp (qName, "WorkingDir") == 0) - { - this->working_dir_entry_ = true; - } - else if (ACE_OS::strcmp (qName, "Activation") == 0) - { - this->activation_entry_ = true; - } - else if (ACE_OS::strcmp (qName, "Command_Line") == 0) - { - this->environment_vars_entry_ = true; - } - else if (ACE_OS::strcmp (qName, "Location") == 0) - { - this->location_entry_ = true; - } - else if (ACE_OS::strcmp (qName, "Server_Object_IOR") == 0) - { - this->server_object_ior_entry_ = true; - } - } -} - -void -XML_ContentHandler::startPrefixMapping (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -// *** Methods inherit from ACEXML_DTDHandler. - -void -XML_ContentHandler::notationDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -void -XML_ContentHandler::unparsedEntityDecl (const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -// Methods inherit from ACEXML_EnitityResolver. - -ACEXML_InputSource * -XML_ContentHandler::resolveEntity (const ACEXML_Char *, - const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. - return 0; -} - -// Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ -void -XML_ContentHandler::error (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -void -XML_ContentHandler::fatalError (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -void -XML_ContentHandler::warning (ACEXML_SAXParseException & ACEXML_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((ACEXML_SAXException)) -{ - // No-op. -} - -int -XML_ContentHandler::get_startup_information (ACE_CString &logical_server_name, - ACE_CString &startup_command, - // ImplementationRepository::EnvironmentList - //&environment_vars, - ACE_CString &working_dir, - //ImplementationRepository::ActivationMode - ACE_CString &activation) -{ - startup_command = this->command_line_; - - logical_server_name = this->server_name_; - - working_dir = this->working_dir_; - - activation = this->activation_; - - return 0; -} - -int -XML_ContentHandler::get_running_information (ACE_CString POA_name, - ACE_CString &location, - ACE_CString &server_object_ior) -{ - if (ACE_OS::strcmp (POA_name.c_str (), this->server_name_.c_str ()) == 0) - { - location = this->location_; - server_object_ior = this->server_object_ior_; - } - return 0; -} - -void -XML_ContentHandler::set_startup_value (ACE_CString POA_name, - int new_value) -{ - this->server_name_ = POA_name; - this->startup_value_ = new_value != 0; -} - -void -XML_ContentHandler::get_startup_value (ACE_CString /* POA_name */, - int &new_value) -{ - new_value = this->startup_value_ ? 1 : 0; -} - -void -XML_ContentHandler::update_running_information (ACE_CString /* POA_name */, - ACE_CString location, - ACE_CString server_object_ior) -{ - this->location_ = location; - this->server_object_ior_ = server_object_ior; -} diff --git a/TAO/orbsvcs/ImplRepo_Service/XML_ContentHandler.h b/TAO/orbsvcs/ImplRepo_Service/XML_ContentHandler.h deleted file mode 100644 index ee3e69beab7..00000000000 --- a/TAO/orbsvcs/ImplRepo_Service/XML_ContentHandler.h +++ /dev/null @@ -1,221 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file XML_ContentHandler.h - * - * $Id$ - * - * @brief This is a content handler which helps update the existing - * xml file used for store server configuration. - * - * @author Priyanka Gontla <gontla_p@ociweb.com> - */ -//============================================================================= - -#ifndef XML_CONTENTHANDLER_H -#define XML_CONTENTHANDLER_H - -#include "ACEXML/common/DefaultHandler.h" - -/** - * @class XML_ContentHandler - * - * @brief Implementation Repository - * - * This provides the interface to update the Server Configuration - * which is in an xml file. - * - */ -class XML_ContentHandler : public ACEXML_DefaultHandler -{ -public: - // = Constructor and destructor - XML_ContentHandler (const char *server_name); - - virtual ~XML_ContentHandler (void); - - // Methods inherit from ACEXML_ContentHandler. - - /* - * Receive notification of character data. - */ - virtual void characters (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of the end of a document. - */ - virtual void endDocument ( ACEXML_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of the end of an element. - */ - virtual void endElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * End the scope of a prefix-URI mapping. - */ - virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of ignorable whitespace in element content. - */ - virtual void ignorableWhitespace (const ACEXML_Char *ch, - int start, - int length ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of a processing instruction. - */ - virtual void processingInstruction (const ACEXML_Char *target, - const ACEXML_Char *data ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive an object for locating the origin of SAX document events. - */ - virtual void setDocumentLocator (ACEXML_Locator *locator) ; - - /* - * Receive notification of a skipped entity. - */ - virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of the beginning of a document. - */ - virtual void startDocument ( ACEXML_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of the beginning of an element. - */ - virtual void startElement (const ACEXML_Char *namespaceURI, - const ACEXML_Char *localName, - const ACEXML_Char *qName, - ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Begin the scope of a prefix-URI Namespace mapping. - */ - virtual void startPrefixMapping (const ACEXML_Char *prefix, - const ACEXML_Char *uri ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - // *** Methods inherit from ACEXML_DTDHandler. - - /* - * Receive notification of a notation declaration event. - */ - virtual void notationDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of an unparsed entity declaration event. - */ - virtual void unparsedEntityDecl (const ACEXML_Char *name, - const ACEXML_Char *publicId, - const ACEXML_Char *systemId, - const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - // Methods inherit from ACEXML_EnitityResolver. - - /* - * Allow the application to resolve external entities. - */ - virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, - const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - // Methods inherit from ACEXML_ErrorHandler. - - /* - * Receive notification of a recoverable error. - */ - virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of a non-recoverable error. - */ - virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - /* - * Receive notification of a warning. - */ - virtual void warning (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL) - ACE_THROW_SPEC ((ACEXML_SAXException)); - - int get_startup_information (ACE_CString &logical_server_name, - ACE_CString &startup_command, - // ImplementationRepository::EnvironmentList - //&environment_vars, - ACE_CString &working_dir, - //ImplementationRepository::ActivationMode - ACE_CString &activation); - - int get_running_information (ACE_CString POA_name, - ACE_CString &location, - ACE_CString &server_object_ior); - - void update_running_information (ACE_CString POA_name, - ACE_CString location, - ACE_CString server_object_ior); - - void set_startup_value (ACE_CString POA_name, - int new_value); - - void get_startup_value (ACE_CString POA_name, - int &new_value); - - - private: - - // Holds the server_name - ACE_CString server_name_; - - // Holds the command_line that is to be used to activate the - // server - ACE_CString command_line_; - - - ACE_CString activation_; - - // Directory where it should be running - ACE_CString working_dir_; - - // Environment variables if any - ACE_CString environment_vars_; - - // IOR of the server - ACE_CString server_object_ior_; - - // Hostname - ACE_CString location_; - - // Checks to see if that particular entry exists. - bool found_server_entry_; - bool command_line_entry_; - bool working_dir_entry_; - bool environment_vars_entry_; - bool activation_entry_; - bool server_object_ior_entry_; - bool location_entry_; - bool startup_value_; -}; - -#endif /* XML_CONTENTHANDLER_H */ diff --git a/TAO/orbsvcs/ImplRepo_Service/activator_export.h b/TAO/orbsvcs/ImplRepo_Service/activator_export.h new file mode 100644 index 00000000000..fcd22f8ccde --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/activator_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s Activator +// ------------------------------ +#ifndef ACTIVATOR_EXPORT_H +#define ACTIVATOR_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ACTIVATOR_HAS_DLL) +# define ACTIVATOR_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ACTIVATOR_HAS_DLL */ + +#if !defined (ACTIVATOR_HAS_DLL) +# define ACTIVATOR_HAS_DLL 1 +#endif /* ! ACTIVATOR_HAS_DLL */ + +#if defined (ACTIVATOR_HAS_DLL) && (ACTIVATOR_HAS_DLL == 1) +# if defined (ACTIVATOR_BUILD_DLL) +# define Activator_Export ACE_Proper_Export_Flag +# define ACTIVATOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ACTIVATOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ACTIVATOR_BUILD_DLL */ +# define Activator_Export ACE_Proper_Import_Flag +# define ACTIVATOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ACTIVATOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ACTIVATOR_BUILD_DLL */ +#else /* ACTIVATOR_HAS_DLL == 1 */ +# define Activator_Export +# define ACTIVATOR_SINGLETON_DECLARATION(T) +# define ACTIVATOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ACTIVATOR_HAS_DLL == 1 */ + +// Set ACTIVATOR_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ACTIVATOR_NTRACE) +# if (ACE_NTRACE == 1) +# define ACTIVATOR_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ACTIVATOR_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ACTIVATOR_NTRACE */ + +#if (ACTIVATOR_NTRACE == 1) +# define ACTIVATOR_TRACE(X) +#else /* (ACTIVATOR_NTRACE == 1) */ +# define ACTIVATOR_TRACE(X) ACE_TRACE_IMPL(X) +#endif /* (ACTIVATOR_NTRACE == 1) */ + +#endif /* ACTIVATOR_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/orbsvcs/ImplRepo_Service/activator_idl_export.h b/TAO/orbsvcs/ImplRepo_Service/activator_idl_export.h new file mode 100644 index 00000000000..5ae5cbc5e22 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/activator_idl_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s Activator +// ------------------------------ +#ifndef ACTIVATOR_IDL_EXPORT_H +#define ACTIVATOR_IDL_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ACTIVATOR_IDL_HAS_DLL) +# define ACTIVATOR_IDL_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ACTIVATOR_IDL_HAS_DLL */ + +#if !defined (ACTIVATOR_IDL_HAS_DLL) +# define ACTIVATOR_IDL_HAS_DLL 1 +#endif /* ! ACTIVATOR_IDL_HAS_DLL */ + +#if defined (ACTIVATOR_IDL_HAS_DLL) && (ACTIVATOR_IDL_HAS_DLL == 1) +# if defined (ACTIVATOR_IDL_BUILD_DLL) +# define ActivatorIDL_Export ACE_Proper_Export_Flag +# define ACTIVATOR_IDL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ACTIVATOR_IDL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ACTIVATOR_IDL_BUILD_DLL */ +# define ActivatorIDL_Export ACE_Proper_Import_Flag +# define ACTIVATOR_IDL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ACTIVATOR_IDL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ACTIVATOR_IDL_BUILD_DLL */ +#else /* ACTIVATOR_IDL_HAS_DLL == 1 */ +# define ActivatorIDL_Export +# define ACTIVATOR_IDL_SINGLETON_DECLARATION(T) +# define ACTIVATOR_IDL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ACTIVATOR_IDL_HAS_DLL == 1 */ + +// Set ACTIVATOR_IDL_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ACTIVATOR_IDL_NTRACE) +# if (ACE_NTRACE == 1) +# define ACTIVATOR_IDL_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ACTIVATOR_IDL_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ACTIVATOR_IDL_NTRACE */ + +#if (ACTIVATOR_IDL_NTRACE == 1) +# define ACTIVATOR_IDL_TRACE(X) +#else /* (ACTIVATOR_IDL_NTRACE == 1) */ +# define ACTIVATOR_IDL_TRACE(X) ACE_TRACE_IMPL(X) +#endif /* (ACTIVATOR_IDL_NTRACE == 1) */ + +#endif /* ACTIVATOR_IDL_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/orbsvcs/ImplRepo_Service/locator_export.h b/TAO/orbsvcs/ImplRepo_Service/locator_export.h new file mode 100644 index 00000000000..8a3584386f1 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/locator_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s Locator +// ------------------------------ +#ifndef LOCATOR_EXPORT_H +#define LOCATOR_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (LOCATOR_HAS_DLL) +# define LOCATOR_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && LOCATOR_HAS_DLL */ + +#if !defined (LOCATOR_HAS_DLL) +# define LOCATOR_HAS_DLL 1 +#endif /* ! LOCATOR_HAS_DLL */ + +#if defined (LOCATOR_HAS_DLL) && (LOCATOR_HAS_DLL == 1) +# if defined (LOCATOR_BUILD_DLL) +# define Locator_Export ACE_Proper_Export_Flag +# define LOCATOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define LOCATOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* LOCATOR_BUILD_DLL */ +# define Locator_Export ACE_Proper_Import_Flag +# define LOCATOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define LOCATOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* LOCATOR_BUILD_DLL */ +#else /* LOCATOR_HAS_DLL == 1 */ +# define Locator_Export +# define LOCATOR_SINGLETON_DECLARATION(T) +# define LOCATOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* LOCATOR_HAS_DLL == 1 */ + +// Set LOCATOR_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (LOCATOR_NTRACE) +# if (ACE_NTRACE == 1) +# define LOCATOR_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define LOCATOR_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !LOCATOR_NTRACE */ + +#if (LOCATOR_NTRACE == 1) +# define LOCATOR_TRACE(X) +#else /* (LOCATOR_NTRACE == 1) */ +# define LOCATOR_TRACE(X) ACE_TRACE_IMPL(X) +#endif /* (LOCATOR_NTRACE == 1) */ + +#endif /* LOCATOR_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/orbsvcs/ImplRepo_Service/locator_idl_export.h b/TAO/orbsvcs/ImplRepo_Service/locator_idl_export.h new file mode 100644 index 00000000000..3016cfc767b --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/locator_idl_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s Locator +// ------------------------------ +#ifndef LOCATOR_IDL_EXPORT_H +#define LOCATOR_IDL_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (LOCATOR_IDL_HAS_DLL) +# define LOCATOR_IDL_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && LOCATOR_IDL_HAS_DLL */ + +#if !defined (LOCATOR_IDL_HAS_DLL) +# define LOCATOR_IDL_HAS_DLL 1 +#endif /* ! LOCATOR_IDL_HAS_DLL */ + +#if defined (LOCATOR_IDL_HAS_DLL) && (LOCATOR_IDL_HAS_DLL == 1) +# if defined (LOCATOR_IDL_BUILD_DLL) +# define LocatorIDL_Export ACE_Proper_Export_Flag +# define LOCATOR_IDL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define LOCATOR_IDL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* LOCATOR_IDL_BUILD_DLL */ +# define LocatorIDL_Export ACE_Proper_Import_Flag +# define LOCATOR_IDL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define LOCATOR_IDL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* LOCATOR_IDL_BUILD_DLL */ +#else /* LOCATOR_IDL_HAS_DLL == 1 */ +# define LocatorIDL_Export +# define LOCATOR_IDL_SINGLETON_DECLARATION(T) +# define LOCATOR_IDL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* LOCATOR_IDL_HAS_DLL == 1 */ + +// Set LOCATOR_IDL_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (LOCATOR_IDL_NTRACE) +# if (ACE_NTRACE == 1) +# define LOCATOR_IDL_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define LOCATOR_IDL_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !LOCATOR_IDL_NTRACE */ + +#if (LOCATOR_IDL_NTRACE == 1) +# define LOCATOR_IDL_TRACE(X) +#else /* (LOCATOR_IDL_NTRACE == 1) */ +# define LOCATOR_IDL_TRACE(X) ACE_TRACE_IMPL(X) +#endif /* (LOCATOR_IDL_NTRACE == 1) */ + +#endif /* LOCATOR_IDL_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/orbsvcs/ImplRepo_Service/repository.xml b/TAO/orbsvcs/ImplRepo_Service/repository.xml index d8284ccf8eb..a0bf35ef009 100644 --- a/TAO/orbsvcs/ImplRepo_Service/repository.xml +++ b/TAO/orbsvcs/ImplRepo_Service/repository.xml @@ -1,22 +1,9 @@ <?xml version="1.0"?> -<!DOCTYPE SERVER_REPOSITORY [ -<!ELEMENT SERVER_INFORMATION (Server, Logical_Server*, StartupOptions, Location)> -<!ELEMENT Server (#PCDATA)> -<!ELEMENT Logical_Server (#PCDATA)> -<!ELEMENT StartupOptions (Command_Line, Environment*, Working_Directory*, Activation*, Location)> -<!ELEMENT Command_Line (#PCDATA)> -<!ELEMENT Working_Directory (#PCDATA)> -<!ELEMENT Activation (NORMAL | MANUAL | PER_CLIENT | AUTO_START)> -<!ELEMENT Location (#PCDATA)> -]> - -<SERVER_REPOSITORY> - -<SERVER_INFORMATION> -<Server>airplane_server</Server> -<StartupOptions> -<Command_Line>./airplane_server</Command_Line> -<Location>doc</Location> -</SERVER_INFORMATION> - -</SERVER_REPOSITORY> +<!DOCTYPE ImplementationRepository/> +<ImplementationRepository> + <Servers name="test" activator="MYHOST" command_line="mysrv" working_dir="mydir" activation_mode="NORMAL" start_limit="1" partial_ior="" ior=""> + </Servers> + <Servers name="test2" activator="MYHOST" command_line="" working_dir="" activation_mode="NORMAL" start_limit="1" partial_ior="" ior=""> + </Servers> + <Activators name="MYHOST" token="1610927480" ior="IOR:010000002b00000049444c3a496d706c656d656e746174696f6e5265706f7369746f72792f416374697661746f723a312e300000010000000000000090000000010102cd150000004a555354414c49454e2e6f63697765622e636f6d00cd1f083900000014010f004e555000000017000000000100000000496d525f416374697661746f7200000000000100000054414f496d52416374697661746f7200000002000000000000000800000001cdcdcd004f4154010000001400000001cdcdcd01000100000000000901010000000000"/> +</ImplementationRepository> diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr.cpp b/TAO/orbsvcs/ImplRepo_Service/tao_imr.cpp index c10c54d5445..45b72a2790a 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr.cpp @@ -2,15 +2,14 @@ // $Id$ #include "tao_imr_i.h" -#include "ace/OS_main.h" int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { TAO_IMR_i tao_imr_i; - if (tao_imr_i.init (argc, argv) == -1) + if (tao_imr_i.init (argc, argv) != 0) return 1; - else - return tao_imr_i.run (); + + return tao_imr_i.run (); } diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp index 67500e37945..99da29e20cd 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.cpp @@ -2,35 +2,30 @@ #include "tao_imr_i.h" +#include "tao/PortableServer/POA.h" + #include "tao/Stub.h" #include "tao/Profile.h" #include "ace/Get_Opt.h" #include "ace/Read_Buffer.h" -#include "ace/OS_NS_stdio.h" -#include "ace/OS_NS_netdb.h" #include "ace/OS_NS_strings.h" -#include "ace/OS_NS_unistd.h" - -// How many servers should we get at once? -const size_t IR_LIST_CHUNK = 10; +#include "ace/OS.h" TAO_IMR_i::TAO_IMR_i (void) - : imr_locator_ (ImplementationRepository::Locator::_nil ()), - op_ (0) +: imr_ (ImplementationRepository::Administration::_nil ()) { // Nothing } TAO_IMR_i::~TAO_IMR_i (void) { - delete this->op_; } int TAO_IMR_i::run () { - if (this->op_ == 0) + if (this->op_.get() == 0) { ACE_ERROR ((LM_ERROR, "Unknown operation")); return TAO_IMR_Op::UNKNOWN; @@ -49,47 +44,46 @@ TAO_IMR_i::init (int argc, char **argv) ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - // Retrieve the ORB. - this->orb_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + { + // Retrieve the ORB. + this->orb_ = CORBA::ORB_init (this->argc_, this->argv_, "tao_imr_i" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; + // Parse command line and verify parameters. + if (this->parse_args () == -1) + return -1; - // Get the ImplRepo object - CORBA::Object_var imr_locator = - orb_->resolve_initial_references ("ImplRepoService" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + // Get the ImplRepo object + CORBA::Object_var obj = + orb_->resolve_initial_references ("ImplRepoService" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - if (CORBA::is_nil (imr_locator.in ())) - { - ACE_ERROR ((LM_ERROR, - "Unable to resolve the ImR Locator.\n")); - ACE_OS::exit (-1); - } + if (CORBA::is_nil (obj.in ())) + { + ACE_ERROR ((LM_ERROR, "Unable to resolve the ImR Locator.\n")); + return -1; + } - exception_message = "While narrowing ImR Locator"; + exception_message = "While narrowing ImR Locator"; - this->imr_locator_ = - ImplementationRepository::Locator::_narrow - (imr_locator.in() - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + this->imr_ = + ImplementationRepository::Administration::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - this->op_->set_imr_locator (this->imr_locator_.in ()); - } - ACE_CATCHANY + if (CORBA::is_nil (imr_.in ())) { - ACE_ERROR ((LM_ERROR, "TAO_IMR_i::init - %s\n", exception_message)); - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception"); + ACE_ERROR ((LM_ERROR, "Unable to narrow the ImR Locator.\n")); return -1; } + + this->op_->set_imr(this->imr_.in ()); + } + ACE_CATCHANY + { + ACE_ERROR ((LM_ERROR, "TAO_IMR_i::init - %s\n", exception_message)); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception"); + return -1; + } ACE_ENDTRY; return 0; @@ -104,17 +98,18 @@ TAO_IMR_i::parse_args (void) // Make sure one command was given if (this->argc_ < 2) { + ACE_ERROR((LM_ERROR, "Error: No operation specified.\n")); this->print_usage (); return -1; } - this->op_ = TAO_IMR_Op::make_op (this->argv_[1]); + this->op_.reset(TAO_IMR_Op::make_op (this->argv_[1])); // Check for unrecognized operation - if (this->op_ == 0) + if (this->op_.get() == 0) { - ACE_ERROR ((LM_ERROR, "ERROR: Unrecognized command: <%s>\n", this->argv_[1])); + ACE_ERROR((LM_ERROR, "Error: Unknown operation '%s'.\n", this->argv_[1])); this->print_usage (); return -1; } @@ -130,18 +125,17 @@ void 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" - " 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" - " shutdown-repo Shuts down the IR\n" - " update Update an entry in the IR\n" - " where [command-arguments] depend on the command\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" + " 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" + " where [command-arguments] depend on the command\n")); } @@ -164,8 +158,6 @@ 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_Shutdown_Repo (); else if (ACE_OS::strcasecmp (op_name, ACE_TEXT ("update")) == 0) return new TAO_IMR_Op_Update (); @@ -179,9 +171,9 @@ TAO_IMR_Op::~TAO_IMR_Op () } void -TAO_IMR_Op::set_imr_locator (ImplementationRepository::Locator_ptr imr_locator) +TAO_IMR_Op::set_imr (ImplementationRepository::Administration_ptr imr) { - this->imr_locator_ = imr_locator; + this->imr_ = imr; } void @@ -200,37 +192,40 @@ TAO_IMR_Op::display_server_information (const ImplementationRepository::ServerIn // Print out information ACE_DEBUG ((LM_DEBUG, "Server <%s>\n", info.server.in ())); + ACE_DEBUG ((LM_DEBUG, - " Activator: %s\n" - " Command Line: %s\n" - " Working Directory: %s\n" - " Activation Mode: %s\n", - info.startup.activator.in (), - info.startup.command_line.in (), - info.startup.working_directory.in (), - act)); + " Activator: %s\n" + " Command Line: %s\n" + " Working Directory: %s\n" + " Activation Mode: %s\n" + " Number of retries: %d\n", + info.startup.activator.in (), + info.startup.command_line.in (), + info.startup.working_directory.in (), + act, + info.startup.start_limit - 1)); for (CORBA::ULong i = 0; i < info.startup.environment.length (); ++i) ACE_DEBUG ((LM_DEBUG, "Environment Variable: %s=%s \n", - info.startup.environment[i].name.in (), - info.startup.environment[i].value.in ())); - - // @@ add logical server once implemented - + info.startup.environment[i].name.in (), + info.startup.environment[i].value.in ())); if (info.startup.activation == ImplementationRepository::PER_CLIENT) ACE_DEBUG ((LM_DEBUG, " No running info available for PER_CLIENT mode\n")); - else if (ACE_OS::strlen (info.location.in()) > 0) + else if (ACE_OS::strlen (info.partial_ior.in()) > 0) ACE_DEBUG ((LM_DEBUG, - " Running at endpoint: %s\n", - info.location.in ())); - else // I am assuming that a blank location means currently not running. + " Running at endpoint: %s\n", + info.partial_ior.in ())); + else // I am assuming that a blank partial_ior means currently not running. ACE_DEBUG ((LM_DEBUG, - " Not currently running\n")); + " Not currently running\n")); + + ACE_DEBUG ((LM_DEBUG, "\n")); } TAO_IMR_Op_Add::TAO_IMR_Op_Add (void) - : activation_ (ImplementationRepository::NORMAL) +: activation_ (ImplementationRepository::NORMAL) +, retry_count_ (0) { // Nothing } @@ -242,9 +237,14 @@ TAO_IMR_Op_List::TAO_IMR_Op_List (void) } TAO_IMR_Op_Update::TAO_IMR_Op_Update (void) -: set_command_line_ (0), - set_working_dir_ (0), - set_activation_ (0) +: set_command_line_ (false) +, set_environment_vars_(false) +, set_working_dir_ (false) +, set_activation_ (false) +, activation_(ImplementationRepository::NORMAL) +, set_retry_count_(false) +, retry_count_ (0) +, set_activator_ (false) { // Nothing } @@ -253,13 +253,11 @@ void TAO_IMR_Op_Activate::print_usage (void) { ACE_ERROR ((LM_ERROR, "Activates a server\n" - "\n" - "Usage: tao_imr [options] activate <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.\n" - " -h Displays this\n")); + "\n" + "Usage: tao_imr [options] activate <name>\n" + " where [options] are ORB options\n" + " where <name> is the POA name used by the server object\n" + " -h Displays this\n")); } int @@ -267,62 +265,63 @@ TAO_IMR_Op_Activate::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; - } + { + this->print_usage (); + return -1; + } // Skip both the program name and the "activate" command - ACE_Get_Opt get_opts (argc, argv, "l:h"); + ACE_Get_Opt get_opts (argc, argv, "h"); this->server_name_ = argv[1]; int c; while ((c = get_opts ()) != -1) switch (c) - { - case 'l': - this->activator_ = get_opts.optarg; - break; - case 'h': // display help - default: - this->print_usage (); - return -1; - } + { + 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; + } - // Success return 0; } void -TAO_IMR_Op_Add::setenv (ACE_TCHAR *opt) +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 ()); + 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 vars Set environment variables\n" - " -a mode Set activate mode (NORMAL|MANUAL|PER_CLIENT|AUTO_START)\n")); + 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 @@ -330,70 +329,82 @@ 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; - } + { + 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:"); + // 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) + if (this->server_name_.length() == 0 || this->server_name_[0] == '-') { - ACE_ERROR_RETURN ((LM_ERROR, - "Server name > must be at least one character long!\n"),-1); + 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': { - case 'c': // Command line arguments - this->command_line_ = get_opts.opt_arg (); - break; - case 'e': // set environment variables - this->setenv( 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 'h': // display help - default: - this->print_usage (); - return -1; + int rc = ACE_OS::atoi(get_opts.optarg); + if (rc > 0) + this->retry_count_ = rc; } + break; + 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; + } + } - // Success return 0; } void TAO_IMR_Op_Autostart::print_usage (void) { - ACE_ERROR ((LM_ERROR, "Usage: tao_imr [options] autostart [command-arguments]\n" - " where [options] are ORB options\n" - " where [command-arguments] can be\n" - " -h Displays this\n")); + ACE_ERROR ((LM_ERROR, "Usage: tao_imr [options] autostart\n" + " where [options] are ORB options\n" + " -h Displays this\n")); } int @@ -406,14 +417,16 @@ TAO_IMR_Op_Autostart::parse (int argc, ACE_TCHAR **argv) while ((c = get_opts ()) != -1) switch (c) - { - case 'h': // display help - default: - this->print_usage (); - return -1; - } + { + 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; + } - // Success return 0; } @@ -421,15 +434,15 @@ void TAO_IMR_Op_IOR::print_usage (void) { ACE_ERROR ((LM_ERROR, "Creates an IOR for a server that is registered with the IMR and uses\n" - "the InterOperable Naming Service. Please see the documentation for\n" - "more information on which server configurations work with this command.\n" - "\n" - "Usage: tao_imr [options] ior <name> [command-arguments]\n" - " where [options] are ORB options\n" - " where <name> is the POA name of the server\n" - " where [command-arguments] can be\n" - " -f filename filename to output the IOR to\n" - " -h Displays this\n")); + "the InterOperable Naming Service. Please see the documentation for\n" + "more information on which server configurations work with this command.\n" + "\n" + "Usage: tao_imr [options] ior <name> [command-arguments]\n" + " where [options] are ORB options\n" + " where <name> is the POA name of the server\n" + " where [command-arguments] can be\n" + " -f filename filename to output the IOR to\n" + " -h Displays this\n")); } int @@ -445,36 +458,29 @@ TAO_IMR_Op_IOR::parse (int argc, ACE_TCHAR **argv) // Skip both the program name and the "ior" command ACE_Get_Opt get_opts (argc, argv, "hf:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'f': // File name - this->filename_ = get_opts.opt_arg (); - break; - case 'h': // display help - default: - this->print_usage(); - return -1; - } - - int remaining_index = get_opts.opt_ind(); - if (get_opts.argc() - remaining_index > 1) { - ACE_DEBUG((LM_DEBUG, "Error : Too many arguments.\n\n")); - this->print_usage(); + 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; } - if (remaining_index < get_opts.argc()) { - this->server_name_ = get_opts.argv()[remaining_index]; - } + int c; - if (this->server_name_.length() == 0) + while ((c = get_opts ()) != -1) + switch (c) { - ACE_DEBUG((LM_DEBUG, "Error : Missing server name.\n\n")); - this->print_usage(); - return -1; + case 'f': // File name + this->filename_ = get_opts.opt_arg (); + break; + 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; @@ -484,14 +490,14 @@ void TAO_IMR_Op_List::print_usage (void) { ACE_ERROR ((LM_ERROR, "Lists all or one of the servers in the Implementation Repository\n" - "\n" - "Usage: tao_imr [options] list [name] [command-arguments]\n" - " where [options] are ORB options\n" - " where [name] is the optional server name to search for\n" - " where [command-arguments] can be\n" - " -v Verbose: Displays more info for each server when\n" - " displaying more than one server\n" - " -h Displays this\n")); + "\n" + "Usage: tao_imr [options] list [name] [command-arguments]\n" + " where [options] are ORB options\n" + " where [name] is the optional server name to search for\n" + " where [command-arguments] can be\n" + " -v Verbose: Displays more info for each server when\n" + " displaying more than one server\n" + " -h Displays this\n")); } int @@ -500,10 +506,10 @@ TAO_IMR_Op_List::parse (int argc, ACE_TCHAR **argv) int server_flag = 0; if (argc > 1 && argv[1][0] != '-') - { - this->server_name_ = argv[1]; - server_flag = 2; - } + { + this->server_name_ = argv[1]; + server_flag = 2; + } // Skip both the program name and the "list" command ACE_Get_Opt get_opts (argc, argv, "vh", server_flag); @@ -512,17 +518,19 @@ TAO_IMR_Op_List::parse (int argc, ACE_TCHAR **argv) while ((c = get_opts ()) != -1) switch (c) - { - case 'v': // verbose server display - this->verbose_server_information_ = 1; - break; - case 'h': // display help - default: - this->print_usage (); - return -1; - } + { + case 'v': // verbose server display + this->verbose_server_information_ = 1; + break; + 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; + } - // Success return 0; } @@ -530,13 +538,11 @@ void TAO_IMR_Op_Remove::print_usage (void) { ACE_ERROR ((LM_ERROR, "Removes a server entry\n" - "\n" - "Usage: tao_imr [options] remove <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.\n" - " -h Displays this\n")); + "\n" + "Usage: tao_imr [options] remove <name>\n" + " where [options] are ORB options\n" + " where <name> is the POA name used by the server object\n" + " -h Displays this\n")); } int @@ -544,30 +550,29 @@ TAO_IMR_Op_Remove::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; - } + { + this->print_usage (); + return -1; + } // Skip both the program name and the "remove" command - ACE_Get_Opt get_opts (argc, argv, "l:h"); + ACE_Get_Opt get_opts (argc, argv, "h"); this->server_name_ = argv[1]; int c; while ((c = get_opts ()) != -1) switch (c) - { - case 'l': - this->activator_ = get_opts.optarg; - break; - case 'h': - default: - this->print_usage (); - return -1; - } + { + case 'h': + this->print_usage (); + return -1; + default: + ACE_ERROR((LM_ERROR, "ERROR : Unknown option '%c'\n", (char) c)); + this->print_usage (); + return -1; + } - // Success return 0; } @@ -575,13 +580,11 @@ void TAO_IMR_Op_Shutdown::print_usage (void) { ACE_ERROR ((LM_ERROR, "Shuts down a server\n" - "\n" - "Usage: tao_imr [options] shutdown <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.\n" - " -h Displays this\n")); + "\n" + "Usage: tao_imr [options] shutdown <name>\n" + " where [options] are ORB options\n" + " where <name> is the name of the server object\n" + " -h Displays this\n")); } int @@ -589,94 +592,64 @@ TAO_IMR_Op_Shutdown::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; - } + { + this->print_usage (); + return -1; + } // Skip both the program name and the "shutdown" command - ACE_Get_Opt get_opts (argc, argv, "l:h"); + ACE_Get_Opt get_opts (argc, argv, "h"); this->server_name_ = argv[1]; int c; while ((c = get_opts ()) != -1) switch (c) - { - case 'l': - this->activator_ = get_opts.optarg; - break; - case 'h': - default: - this->print_usage (); - return -1; - } - - // Success - return 0; -} - -void -TAO_IMR_Op_Shutdown_Repo::print_usage (void) -{ - ACE_ERROR ((LM_ERROR, "Shuts down the Implementation Repository\n" - "\n" - "Usage: tao_imr [options] shutdown-repo [command-arguments]\n" - " where [options] are ORB options\n" - " where [command-arguments] can be\n" - " -h Displays this\n")); -} - -int -TAO_IMR_Op_Shutdown_Repo::parse (int argc, ACE_TCHAR **argv) -{ - // Skip both the program name and the "shutdown" command - ACE_Get_Opt get_opts (argc, argv, "h"); - int c; - while ((c = get_opts ()) != -1) - switch (c) - { - case 'h': // display help - default: - this->print_usage (); - return -1; - } + { + case 'h': + this->print_usage (); + return -1; + default: + ACE_ERROR((LM_ERROR, "ERROR : Unknown option '%c'\n", (char) c)); + this->print_usage (); + return -1; + } - // Success return 0; } void -TAO_IMR_Op_Update::setenv (ACE_TCHAR *opt) +TAO_IMR_Op_Update::addenv (ACE_TCHAR *opt) { - this->set_environment_vars_ = 1; - 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 ()); + 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_Update::print_usage (void) { - ACE_ERROR ((LM_ERROR, "Updates a server entry\n" - "\n" - "Usage: tao_imr [options] 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" - " -l Activator name.\n" - " -h Displays this\n" - " -c command Startup command\n" - " -w dir Working directory\n" - " -e vars Set environment variables\n" - " -a mode Set activate mode (NORMAL|MANUAL|PER_CLIENT|AUTO_START)\n")); + ACE_ERROR ((LM_ERROR, + "Updates a server entry\n" + "\n" + "Usage: tao_imr [options] 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" + " -h Displays this\n" + " -l Activator name.\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 the startup/ping retry count to count\n")); } int @@ -684,55 +657,70 @@ TAO_IMR_Op_Update::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; - } + { + ACE_ERROR((LM_ERROR, "Error: Must supply at least a server name.\n")); + this->print_usage (); + return -1; + } // Skip both the program name and the "update" command - ACE_Get_Opt get_opts (argc, argv, "hc:w:a:e:l:"); + ACE_Get_Opt get_opts (argc, argv, "hc:w:a:e:r:R:l:"); this->server_name_ = argv[1]; int c; while ((c = get_opts ()) != -1) switch (c) + { + case 'c': // Command line arguments + this->set_command_line_ = true; + this->command_line_ = get_opts.opt_arg (); + break; + case 'e': // set environment variables + this->set_environment_vars_ = true; + this->addenv( get_opts.opt_arg () ); + break; + case 'w': // Working Directory + this->set_working_dir_ = true; + this->working_dir_ = get_opts.opt_arg (); + break; + case 'a': // Activation Mode + this->set_activation_ = true; + 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 'r': + case 'R': // startup/ping Retry Count { - case 'c': // Command line arguments - this->set_command_line_ = 1; - this->command_line_ = get_opts.opt_arg (); - break; - case 'e': // set environment variables - this->setenv( get_opts.opt_arg () ); - break; - case 'w': // Working Directory - this->set_working_dir_ = 1; - this->working_dir_ = get_opts.opt_arg (); - break; - case 'a': // Activation Mode - this->set_activation_ = 1; - 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': - this->activator_ = get_opts.optarg; - break; - case 'h': // display help - default: - this->print_usage (); - return -1; + this->set_retry_count_ = true; + int rc = ACE_OS::atoi(get_opts.optarg); + if (rc > 0) + this->retry_count_ = rc; } + break; + case 'l': /// hostname of the activator + this->activator_ = get_opts.optarg; + this->set_activator_ = true; + break; + 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; } @@ -745,53 +733,47 @@ TAO_IMR_Op_Update::parse (int argc, ACE_TCHAR **argv) int TAO_IMR_Op_Activate::run (void) { + ACE_ASSERT(! CORBA::is_nil(imr_)); ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - if (this->activator_.length() == 0) - { - this->imr_locator_->activate_server (this->server_name_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else - { - this->imr_locator_->activate_server_in_activator ( - this->server_name_.c_str (), - this->activator_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_DEBUG ((LM_DEBUG, - "Successfully Activated server <%s>\n", - this->server_name_.c_str ())); - } + { + this->imr_->activate_server (this->server_name_.c_str() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_DEBUG ((LM_DEBUG, + "Successfully Activated server <%s>\n", + this->server_name_.c_str ())); + } ACE_CATCH (ImplementationRepository::CannotActivate, ex) - { - ACE_ERROR ((LM_ERROR, "Cannot activate server <%s>, reason: <%s>\n", - this->server_name_.c_str (), - ex.reason.in ())); - return TAO_IMR_Op::CANNOT_ACTIVATE; - } + { + ACE_ERROR ((LM_ERROR, "Cannot activate server <%s>, reason: <%s>\n", + this->server_name_.c_str (), + ex.reason.in ())); + return TAO_IMR_Op::CANNOT_ACTIVATE; + } 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; - } + { + ACE_ERROR ((LM_ERROR, "Could not find server <%s>!\n", this->server_name_.c_str ())); + return TAO_IMR_Op::NOT_FOUND; + } + ACE_CATCH (PortableServer::ForwardRequest, ex) + { + ACE_RE_THROW; + } ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Activating Server"); - return TAO_IMR_Op::UNKNOWN; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Activating Server"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; - // Success return TAO_IMR_Op::NORMAL; } int TAO_IMR_Op_Add::run (void) { + ACE_ASSERT(! CORBA::is_nil(imr_)); + ImplementationRepository::StartupOptions startup_options; startup_options.command_line = @@ -801,128 +783,102 @@ TAO_IMR_Op_Add::run (void) 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 ()); - } + { + 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); - } + { + // 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_locator_->register_server (this->server_name_.c_str (), - startup_options ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + { + 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_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_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_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_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_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Adding server"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; - // Success return TAO_IMR_Op::NORMAL; } int TAO_IMR_Op_Autostart::run (void) { + ACE_ASSERT(! CORBA::is_nil(imr_)); + ImplementationRepository::ServerInformationList_var server_list; ImplementationRepository::ServerInformationIterator_var server_iter; ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - this->imr_locator_->list (0, - server_list, - server_iter - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + { + this->imr_->list (0, + server_list, + server_iter + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - // Check for more to be displayed - if (!CORBA::is_nil (server_iter.in ())) - { - int flag = 1; - - while (flag) - { - server_iter->next_n (IR_LIST_CHUNK, - server_list - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong list_length = server_list->length (); - if (list_length > 0) - { - for (CORBA::ULong i = 0; i < list_length; i++) - { - ACE_TRY_EX (inside) - { - this->imr_locator_->activate_server_in_activator ( - server_list[i].server.in (), - server_list[i].startup.activator.in() - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX (inside); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - server_list[i].server.in ()); - // Ignore exception - } - ACE_ENDTRY; - } - } - else - { - flag = 0; - } - } - - // We are done with the iterator, so it can go away now. - server_iter->destroy (); - } else { - ACE_DEBUG((LM_DEBUG, "There were no servers to start.\n")); - } - } - ACE_CATCHANY + ACE_ASSERT(CORBA::is_nil(server_iter.in())); + + CORBA::ULong len = server_list->length (); + for (CORBA::ULong i = 0; i < len; ++i) { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "autostart"); - return TAO_IMR_Op::UNKNOWN; + ACE_TRY_EX (inside) + { + this->imr_->activate_server(server_list[i].server.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK_EX (inside); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, server_list[i].server.in ()); + // Ignore exception + } + ACE_ENDTRY; } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "autostart"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; return TAO_IMR_Op::NORMAL; @@ -931,78 +887,79 @@ TAO_IMR_Op_Autostart::run (void) int TAO_IMR_Op_IOR::run (void) { - // Todo : Most of this logic duplicates that in the POA.cpp + ACE_ASSERT(! CORBA::is_nil(imr_)); + + // Create a corbaloc string + // Todo : Most of this logic duplicates that in the POA.cpp ACE_TRY_NEW_ENV + { + if (CORBA::is_nil (this->imr_) + || !this->imr_->_stubobj () + || !this->imr_->_stubobj ()->profile_in_use ()) { - if (CORBA::is_nil (this->imr_locator_) - || !this->imr_locator_->_stubobj () - || !this->imr_locator_->_stubobj ()->profile_in_use ()) - { - ACE_ERROR_RETURN (( - LM_ERROR, - ACE_TEXT ("Invalid ImR Locator IOR\n") - ), - -1 - ); - } - - CORBA::String_var imr_str = - this->imr_locator_->_stubobj ()-> - profile_in_use ()->to_string (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; + ACE_ERROR_RETURN (( + LM_ERROR, + ACE_TEXT ("Invalid ImR Locator IOR\n") + ), -1); + } - // Search for "corbaloc:" alone, without the protocol. This code - // should be protocol neutral. - const char corbaloc[] = "corbaloc:"; - char *pos = ACE_OS::strstr (imr_str.inout (), corbaloc); + CORBA::String_var imr_str = + this->imr_->_stubobj ()-> + profile_in_use ()->to_string (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; - if (pos == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Could not parse IMR IOR\n"), - -1); + // Search for "corbaloc:" alone, without the protocol. This code + // should be protocol neutral. + const char corbaloc[] = "corbaloc:"; + char *pos = ACE_OS::strstr (imr_str.inout (), corbaloc); + + if (pos == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, "Could not parse IMR IOR\n"), -1); + } + else + { + pos = ACE_OS::strchr (pos + sizeof (corbaloc), ':'); + pos = ACE_OS::strchr (pos + 1, + this->imr_->_stubobj ()->profile_in_use ()->object_key_delimiter ()); + + if (pos) + { + *(pos + 1) = 0; // Crop the string + } else - { - pos = ACE_OS::strchr (pos + sizeof (corbaloc), ':'); - pos = ACE_OS::strchr (pos + 1, - this->imr_locator_->_stubobj ()->profile_in_use ()->object_key_delimiter ()); - - if (pos) - *(pos + 1) = 0; // Crop the string - else - ACE_ERROR_RETURN ((LM_ERROR, - "Could not parse IMR IOR\n"), - -1); - } - ACE_CString ior (imr_str.in ()); - - // Add the key - ior += this->server_name_; - - ACE_DEBUG ((LM_DEBUG, "%s\n", ior.c_str ())); - - if (this->filename_.length () > 0) - { - FILE *file = ACE_OS::fopen (this->filename_.c_str (), "w"); - - if (file == 0) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Error: Unable to open %s for writing: %p\n", - this->filename_.c_str ()), - -1); - } - - ACE_OS::fprintf (file, - "%s", - ior.c_str ()); - ACE_OS::fclose (file); - } + { + ACE_ERROR_RETURN ((LM_ERROR, "Could not parse IMR IOR\n"), -1); + } } - ACE_CATCHANY + ACE_CString ior (imr_str.in ()); + + // Add the key + ior += this->server_name_; + + ACE_DEBUG ((LM_DEBUG, "%s\n", ior.c_str ())); + + if (this->filename_.length () > 0) { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Ior"); - return TAO_IMR_Op::UNKNOWN; + FILE *file = ACE_OS::fopen (this->filename_.c_str (), "w"); + + if (file == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Error: Unable to open %s for writing: %p\n", + this->filename_.c_str ()), + -1); + } + + ACE_OS::fprintf (file, "%s", ior.c_str ()); + ACE_OS::fclose (file); } + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "IOR"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; return TAO_IMR_Op::NORMAL; @@ -1011,81 +968,57 @@ TAO_IMR_Op_IOR::run (void) int TAO_IMR_Op_List::run (void) { + ACE_ASSERT(! CORBA::is_nil(imr_)); + ImplementationRepository::ServerInformationList_var server_list; ImplementationRepository::ServerInformationIterator_var server_iter; ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY + { + // If there is a server name, list only that server. Otherwise, look + // at all of them. + if (this->server_name_.length () == 0) { - // If there is a server name, list only that server. Otherwise, look - // at all of them. - if (this->server_name_.length () == 0) - { - this->imr_locator_->list (IR_LIST_CHUNK, - server_list.out(), - server_iter.out() - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (server_list->length() == 0) - { - ACE_DEBUG((LM_DEBUG, "No servers found.\n")); - return TAO_IMR_Op::NORMAL; - } - - for (CORBA::ULong i = 0; i < server_list->length (); i++) - this->display_server_information (server_list[i]); - - // Check for more to be displayed - if (!CORBA::is_nil (server_iter.in ())) - { - int flag = 1; - - while (flag) - { - server_iter->next_n (IR_LIST_CHUNK, - server_list - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong list_length = server_list->length (); - if (list_length > 0) - { - for (CORBA::ULong i = 0; i < list_length; i++) - this->display_server_information (server_list[i]); - } - else - { - flag = 0; - } - } - - // We are done with the iterator, so it can go away now. - server_iter->destroy (); - } - } - else - { - ImplementationRepository::ServerInformation_var server_information; + this->imr_->list (0, + server_list.out(), + server_iter.out() + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - this->imr_locator_->find (this->server_name_.c_str (), server_information ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + if (server_list->length() == 0) + { + ACE_DEBUG((LM_DEBUG, "No servers found.\n")); + return TAO_IMR_Op::NORMAL; + } - this->verbose_server_information_ = 1; + for (CORBA::ULong i = 0; i < server_list->length (); i++) + this->display_server_information (server_list[i]); - this->display_server_information (server_information.in ()); - } + ACE_ASSERT (CORBA::is_nil (server_iter.in ())); } - ACE_CATCH (ImplementationRepository::NotFound, ex) + else { - ACE_ERROR ((LM_ERROR, "Could not find server <%s>!\n", this->server_name_.c_str ())); - return TAO_IMR_Op::NOT_FOUND; + ImplementationRepository::ServerInformation_var si; + + this->imr_->find (this->server_name_.c_str (), si ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->verbose_server_information_ = 1; + + this->display_server_information (si.in ()); } + } + 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; + } ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "List"); - return TAO_IMR_Op::UNKNOWN; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "List"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; return TAO_IMR_Op::NORMAL; @@ -1094,180 +1027,123 @@ TAO_IMR_Op_List::run (void) int TAO_IMR_Op_Remove::run (void) { + ACE_ASSERT(! CORBA::is_nil(imr_)); + ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - if (this->activator_.length() == 0) - { - this->imr_locator_->remove_server (this->server_name_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else - { - this->imr_locator_->remove_server_in_activator ( - this->server_name_.c_str (), - this->activator_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_DEBUG ((LM_DEBUG, - "Successfully removed server <%s>\n", - this->server_name_.c_str ())); - } + { + this->imr_->remove_server (this->server_name_.c_str() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "Successfully removed server <%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; - } + { + ACE_ERROR ((LM_ERROR, "Could not find server <%s>!\n", + this->server_name_.c_str ())); + return TAO_IMR_Op::NOT_FOUND; + } 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_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, "Removing Server"); - return TAO_IMR_Op::UNKNOWN; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Removing Server"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; - // Success return TAO_IMR_Op::NORMAL; } int TAO_IMR_Op_Shutdown::run (void) { - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - if (this->activator_.length() == 0) - { - this->imr_locator_->shutdown_server (this->server_name_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - else - { - this->imr_locator_->shutdown_server_in_activator ( - this->server_name_.c_str (), - this->activator_.c_str () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_DEBUG ((LM_DEBUG, - "Successfully shut down server <%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; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Shutting Down Server"); - return TAO_IMR_Op::UNKNOWN; - } - ACE_ENDTRY; + ACE_ASSERT(! CORBA::is_nil(imr_)); - // Success - return TAO_IMR_Op::NORMAL; -} - -int -TAO_IMR_Op_Shutdown_Repo::run (void) -{ ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - this->imr_locator_->shutdown_repo( ACE_ENV_SINGLE_ARG_PARAMETER ) ; - ACE_TRY_CHECK; + { + this->imr_->shutdown_server (this->server_name_.c_str () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - ACE_DEBUG((LM_DEBUG, - "Successfully shut down Implementation Repository\n")); - } + ACE_DEBUG ((LM_DEBUG, "Successfully shut down server <%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; + } ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Shutting Down Repository"); - return UNKNOWN; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Shutting Down Server"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; - // Success - return NORMAL; + return TAO_IMR_Op::NORMAL; } int TAO_IMR_Op_Update::run (void) { + ACE_ASSERT(! CORBA::is_nil(imr_)); + ImplementationRepository::ServerInformation_var server_information; ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - if (this->activator_.length() == 0) { - this->imr_locator_->find(this->server_name_.c_str (), - server_information.out() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } else { - this->imr_locator_->find_in_activator (this->server_name_.c_str (), - this->activator_.c_str(), - server_information.out() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } + { + this->imr_->find(this->server_name_.c_str (), + server_information.out() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - // Conditionally update the startup options - if (this->set_command_line_ == 1) - server_information->startup.command_line = - CORBA::string_dup (this->command_line_.c_str ()); + // Conditionally update the startup options + if (this->set_command_line_) + server_information->startup.command_line = + CORBA::string_dup (this->command_line_.c_str ()); - if (this->set_environment_vars_ == 1) - server_information->startup.environment = this->environment_vars_; + if (this->set_environment_vars_) + server_information->startup.environment = this->environment_vars_; - if (this->set_working_dir_ == 1) - server_information->startup.working_directory = - CORBA::string_dup (this->working_dir_.c_str ()); + if (this->set_working_dir_) + server_information->startup.working_directory = CORBA::string_dup (this->working_dir_.c_str ()); - if (this->set_activation_ == 1) - server_information->startup.activation = this->activation_; + if (this->set_activation_) + server_information->startup.activation = this->activation_; - // @@ Add logical server support here also - this->imr_locator_->reregister_server (this->server_name_.c_str (), - server_information->startup - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + if (this->set_retry_count_) + server_information->startup.start_limit = this->retry_count_ + 1; - // Now that we've reregistered the server, update the server - // information before we display it. - this->imr_locator_->find(this->server_name_.c_str (), - server_information.out() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + if (this->set_activator_) + server_information->startup.activator = CORBA::string_dup(this->activator_.c_str()); - this->display_server_information (server_information.in ()); - } + this->imr_->reregister_server (this->server_name_.c_str (), + server_information->startup + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } 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; - } + { + ACE_ERROR ((LM_ERROR, "Could not find server <%s>\n", this->server_name_.c_str ())); + return TAO_IMR_Op::NOT_FOUND; + } 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_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, "Updating server"); - return TAO_IMR_Op::UNKNOWN; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Updating server"); + return TAO_IMR_Op::UNKNOWN; + } ACE_ENDTRY; - // Success return TAO_IMR_Op::NORMAL; } diff --git a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h index 51ebd996029..10573eeda31 100644 --- a/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h +++ b/TAO/orbsvcs/ImplRepo_Service/tao_imr_i.h @@ -15,9 +15,10 @@ #ifndef TAO_IMR_I_H #define TAO_IMR_I_H -#include "tao/PortableServer/ImR_LocatorC.h" +#include "tao/PortableServer/ImplRepoC.h" #include "tao/corba.h" #include "ace/SString.h" +#include "ace/Auto_Ptr.h" // Forward Declaration class TAO_IMR_Op; @@ -61,10 +62,10 @@ private: /// Reference to our Locator interface of /// implementation repository. - ImplementationRepository::Locator_var imr_locator_; + ImplementationRepository::Administration_var imr_; /// What we need to do. - TAO_IMR_Op *op_; + ACE_Auto_Ptr<TAO_IMR_Op> op_; }; @@ -100,11 +101,11 @@ public: virtual int run (void) = 0; /// Sets the implrepo locator pointer - void set_imr_locator (ImplementationRepository::Locator_ptr imr); + void set_imr (ImplementationRepository::Administration_ptr imr); protected: /// Reference to our implementation repository. - ImplementationRepository::Locator_ptr imr_locator_; + ImplementationRepository::Administration_ptr imr_; // = Helper methods @@ -132,9 +133,6 @@ protected: /// POA server name. ACE_CString server_name_; - - /// The name of the activator - ACE_CString activator_; }; @@ -155,7 +153,7 @@ public: protected: /// Sets one of the environment variables - void setenv (ACE_TCHAR *opt); + void addenv (ACE_TCHAR *opt); /// Prints a message about the usage. void print_usage (void); @@ -177,6 +175,9 @@ protected: /// Hostname where the activator is running. ACE_CString activator_; + + /// startup/ping Retry Count + int retry_count_; }; @@ -275,11 +276,7 @@ protected: /// Prints a message about the usage void print_usage (void); - /// POA server name. ACE_CString server_name_; - - /// Hostname where the activator is running. - ACE_CString activator_; }; @@ -300,29 +297,9 @@ protected: /// Prints a message about the usage void print_usage (void); - /// POA server name. ACE_CString server_name_; - - ACE_CString activator_; }; -/** - * @class TAO_IMR_Op_Shutdown_Repo - * - * @brief Shutdown the repository - * - * Shutdown_repo is used to shutdown the repository via an IDL operation. - */ -class TAO_IMR_Op_Shutdown_Repo : public TAO_IMR_Op -{ -public: - virtual int parse (int argc, ACE_TCHAR **argv); - virtual int run (void); - -protected: - /// Prints a message about the usage - void print_usage (void); -}; /** * @class TAO_IMR_Op_Update @@ -342,7 +319,7 @@ public: protected: /// Sets one environment variable. - void setenv (ACE_TCHAR *opt); + void addenv (ACE_TCHAR *opt); /// Prints a message about the usage. void print_usage (void); @@ -350,34 +327,22 @@ protected: /// POA server name. ACE_CString server_name_; - /// True if the command_line_ needs to be updated. - int set_command_line_; - - /// Startup command. + bool set_command_line_; ACE_CString command_line_; - /// True if the environment_vars_ needs to be updated. - int set_environment_vars_; - - /// True if the working_dir_ needs to be updated. - int set_working_dir_; - - /// Environment Variables. + bool set_environment_vars_; ImplementationRepository::EnvironmentList environment_vars_; - /// Working directory. + bool set_working_dir_; ACE_CString working_dir_; - /// True if the activation mode needs to be updated. - int set_activation_; - - /// Activation mode (0 = NORMAL, 1 = MANUAL, 2 = PER_CLIENT, 3 = AUTO_START) + bool set_activation_; ImplementationRepository::ActivationMode activation_; - /// True if the location mode needs to be updated. - int set_location_; + bool set_retry_count_; + int retry_count_; - /// Hostname where the activator is running. + bool set_activator_; ACE_CString activator_; }; diff --git a/TAO/orbsvcs/ImplRepo_Service/utils.h b/TAO/orbsvcs/ImplRepo_Service/utils.h new file mode 100644 index 00000000000..8007c51902a --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/utils.h @@ -0,0 +1,98 @@ +//$Id$ +#ifndef TAO_IMR_UTILS_H +#define TAO_IMR_UTILS_H + +#include "tao/PortableServer/ImplRepoC.h" + +#include "ace/SString.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class ImR_Utils { +public: + static ACE_CString activationModeToString(ImplementationRepository::ActivationMode mode) + { + switch (mode ) + { + case ImplementationRepository::NORMAL: + return "NORMAL"; + case ImplementationRepository::MANUAL: + return "MANUAL"; + case ImplementationRepository::PER_CLIENT: + return "PER_CLIENT"; + case ImplementationRepository::AUTO_START: + return "AUTO_START"; + default: + ACE_ASSERT(mode == ImplementationRepository::NORMAL); + return ""; + } + } + static ImplementationRepository::ActivationMode parseActivationMode(const ACE_CString& s) + { + if (s == "NORMAL") + return ImplementationRepository::NORMAL; + if (s == "MANUAL") + return ImplementationRepository::MANUAL; + if (s == "PER_CLIENT") + return ImplementationRepository::PER_CLIENT; + if (s == "AUTO_START") + return ImplementationRepository::AUTO_START; + + return ImplementationRepository::NORMAL; + } + static ACE_CString envListToString(const ImplementationRepository::EnvironmentList& lst) + { + ACE_CString ret; + for (CORBA::ULong n = 0; n < lst.length(); ++n) + { + ret += "name=\""; + ret += lst[n].name.in(); + ret += "\" value=\""; + ret += lst[n].value.in(); + ret += "\"\n"; + } + return ret; + } + static ImplementationRepository::EnvironmentList parseEnvList(const ACE_CString& s) + { + ImplementationRepository::EnvironmentList ret(10); + + const ACE_CString NAMETAG = "name=\""; + const ACE_CString VALTAG = "value=\""; + const ACE_CString ENDTAG = "\""; + + ssize_t i = 0; + + for (CORBA::ULong idx = 0; ; ++idx) + { + // find name + ssize_t j = s.find(NAMETAG, i); + if (j == ACE_CString::npos) break; + j += NAMETAG.length(); + ssize_t k = s.find(ENDTAG, j + 1); + if (k == ACE_CString::npos) break; + ACE_CString name = s.substr(j, k - j); + + i = k + 1; + + // find value + j = s.find(VALTAG, i); + if (j == ACE_CString::npos) break; + j += VALTAG.length(); + k = s.find(ENDTAG, j + 1); + if (k == ACE_CString::npos) break; + ACE_CString value = s.substr(j, k - j); + + i = k + 1; + + ret.length(idx + 1); + ret[idx].name = name.c_str(); + ret[idx].value = value.c_str(); + } + return ret; + } +}; + +#endif diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc b/TAO/orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc new file mode 100644 index 00000000000..2046ddc83eb --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc @@ -0,0 +1,69 @@ +project : orbsvcsexe, portableserver { + requires += exceptions + exename = combined_service + source_files { + combined.cpp + service_configC.cpp + service_configS.cpp + } + idl_files { + service_config.idl + } +} + +project(*Controller) : orbsvcsexe { + requires += exceptions + exename = controller + source_files { + controller.cpp + service_configC.cpp + } + idl_files { + service_config.idl + } +} + +// A client that uses corba to test out basic imr functionality +project(*Test) : orbsvcsexe { + requires += exceptions + source_files { + test.cpp + testC.cpp + } + idl_files { + test.idl + } +} + +// A server to use with the imr +project(*TestServer) : orbsvcsexe, portableserver, iortable { + requires += exceptions + source_files { + test_server.cpp + testC.cpp + testS.cpp + } + idl_files { + test.idl + } +} + +// Another simple server that can be loaded dynamically into the +// combined_service. +project(*DynamicServer) : taolib_with_idl, portableserver, iortable { + requires += exceptions + dynamicflags = DYNSERVER_BUILD_DLL + sharedname = DynServer + idl_files { + test.idl + } + source_files { + testC.cpp + testS.cpp + dynserver.cpp + } + header_files { + dynserver.h + dynserver_export.h + } +} diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/combined.cpp b/TAO/orbsvcs/examples/ImR/Combined_Service/combined.cpp new file mode 100644 index 00000000000..b8d7d225777 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/combined.cpp @@ -0,0 +1,80 @@ +// $Id$ +// This is a simple example, showing how you can load an +// ImR Locator and/or Activator as ACE Service Objects +// using the ACE Service Configurator framework. + +#include "service_configS.h" + +#include <ace/Service_Config.h> +#include <ace/streams.h> + +using namespace CORBA; +using namespace PortableServer; + +class SvcConf + : public POA_ServiceConfigurator + , public PortableServer::RefCountServantBase +{ + ACE_Service_Config& asc_; +public: + SvcConf(ACE_Service_Config& asc) + : asc_(asc) + { + } + virtual CORBA::Long process_directive(const char* s) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + ACE_ASSERT(s != 0); + ACE_ASSERT(ACE_OS::strlen(s) > 0); + return asc_.process_directive(s); + } + + virtual void reconfigure() ACE_THROW_SPEC ((CORBA::SystemException)) + { + asc_.reconfigure(); + } +}; + +int main (int argc, char* argv[]) +{ + try { + + ACE_Service_Config config; + config.open(argc, argv); + + ORB_var orb = ORB_init(argc, argv); + + Object_var obj = orb->resolve_initial_references("RootPOA"); + POA_var poa = POA::_narrow(obj.in()); + ACE_ASSERT(! is_nil(poa.in())); + POAManager_var poaman = poa->the_POAManager(); + + SvcConf svt(config); + + ObjectId_var id = poa->activate_object(&svt); + obj = poa->id_to_reference(id.in()); + ACE_ASSERT(! is_nil(obj.in())); + String_var ior = orb->object_to_string(obj.in()); + + poaman->activate(); + + { + ofstream out("combined.ior"); + out << ior; + } + + ACE_DEBUG((LM_DEBUG, "Combined service started.\n")); + + orb->run(); + + ACE_DEBUG((LM_DEBUG, "Combined service shutdown.\n")); + + poa->destroy(1, 1); + orb->destroy(); + + } catch (CORBA::Exception& e) { + ACE_PRINT_EXCEPTION(e, "Combined Service:"); + } + return 0; +} + diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/controller.cpp b/TAO/orbsvcs/examples/ImR/Combined_Service/controller.cpp new file mode 100644 index 00000000000..0bab1bfd6aa --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/controller.cpp @@ -0,0 +1,73 @@ +// $Id$ +// This is a simple test of an ImR using the corba interfaces + +#include "service_configC.h" + +#include <ace/streams.h> +#include <ace/SString.h> +#include <ace/Log_Msg.h> + +using namespace CORBA; + +namespace { + + ACE_CString directive; + + void showusage() { + ACE_DEBUG((LM_DEBUG, "Usage: controller [-r | -c \"service_configurator_directive\"]\n" + "(e.g. dynamic mysvc Service_Object * MySvc:_make_MySvc() \"-arg1 one\"\n\n")); + } + + bool parse_args(int argc, char* argv[]) { + if (argc != 2 && argc != 3) { + ACE_ERROR((LM_ERROR, "Controller: wrong number of arguments. %d\n", argc - 1)); + return false; + } + for (int i = 1; i < argc; ++i) { + ACE_CString s(argv[i]); + if (s == "-h" || s == "-help" || s == "--help" || s == "-?") + return false; + if (s == "-r") { + return true; + } + if (s == "-c" && ++i < argc) { + directive = argv[i]; + return true; + } + } + return false; + } +} + +int main(int argc, char* argv[]) { + + try { + + ORB_var orb = ORB_init(argc, argv); + + if (! parse_args(argc, argv)) { + showusage(); + return 1; + } + + ACE_DEBUG((LM_DEBUG, "Controller: Connecting to combined service...\n")); + + Object_var obj = orb->resolve_initial_references("ServiceConfig"); + ServiceConfigurator_var sc = ServiceConfigurator::_narrow(obj.in()); + ACE_ASSERT(! is_nil(sc.in())); + + if (directive.length() > 0) { + ACE_DEBUG((LM_DEBUG, "Controller: sending directive <%s>...\n", directive.c_str())); + sc->process_directive(directive.c_str()); + } else { + ACE_DEBUG((LM_DEBUG, "Controller: reloading config file...\n")); + sc->reconfigure(); + } + ACE_DEBUG((LM_DEBUG, "Controller: done.\n")); + + return 0; + } catch (CORBA::Exception& e) { + ACE_PRINT_EXCEPTION(e, "Controller:"); + } + return 1; +} diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.conf b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.conf new file mode 100644 index 00000000000..4d63029f52e --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.conf @@ -0,0 +1 @@ +dynamic DynServer_Loader Service_Object * DynServer:_make_DynServer_Loader() '-orbcollocation per-orb -orbuseimr 1 -orbinitref ImplRepoService=corbaloc::localhost:9999/ImplRepoService' diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.cpp b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.cpp new file mode 100644 index 00000000000..1a4b617f2f7 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.cpp @@ -0,0 +1,150 @@ +// $Id$ +#include "dynserver.h" + +#include <tao/IORTable/IORTable.h> + +#include <ace/Dynamic_Service.h> +#include <ace/Task.h> + +using namespace CORBA; +using namespace PortableServer; + +DynServer::DynServer() +: n_(0) +{ +} + +DynServer::~DynServer() { +} + +Long DynServer::get() ACE_THROW_SPEC ((SystemException)) { + ACE_DEBUG((LM_DEBUG, "dynserver: get() %d\n", ++n_)); + return n_; +} + +namespace { + POA_ptr createPersistPOA(const char* name, POA_ptr root_poa, POAManager_ptr poaman) { + PolicyList policies (2); + policies.length (2); + policies[0] = root_poa->create_id_assignment_policy(USER_ID); + policies[1] = root_poa->create_lifespan_policy(PERSISTENT); + POA_var poa = root_poa->create_POA(name, poaman, policies); + policies[0]->destroy(); + policies[1]->destroy(); + return poa._retn(); + } +} + +class DynServer_ORB_Runner : public ACE_Task_Base +{ + ORB_var orb_; +public: + DynServer_ORB_Runner(ORB_ptr orb) + : orb_(ORB::_duplicate(orb)) + { + } + void end() { + if (! is_nil(orb_.in())) { + orb_->shutdown(1); + wait(); + } + } + virtual int svc() + { + orb_->run(); + orb_ = ORB::_nil(); + return 0; + } +}; + +DynServer_Loader::DynServer_Loader(void) +{ +} + +int +DynServer_Loader::init (int argc, ACE_TCHAR* argv[] ACE_ENV_ARG_DECL) +{ + try { + + orb_ = ORB_init(argc, argv, "DynServer"); + + Object_var obj = orb_->resolve_initial_references("RootPOA"); + root_poa_ = POA::_narrow(obj.in()); + POAManager_var poaman = root_poa_->the_POAManager(); + obj = this->orb_->resolve_initial_references ("IORTable"); + IORTable::Table_var ior_table = IORTable::Table::_narrow (obj.in()); + ACE_ASSERT(! is_nil(ior_table.in())); + + ACE_DEBUG((LM_DEBUG, "dynserver: creating poas. (Registers with ImR)\n")); + + POA_var poa1 = createPersistPOA("DynObject1", root_poa_.in(), poaman.in()); + POA_var poa2 = createPersistPOA("DynObject2", root_poa_.in(), poaman.in()); + + ACE_DEBUG((LM_DEBUG, "dynserver: activating objects.\n")); + + DynServer* svt1 = new DynServer; + ServantBase_var scoped_svt1(svt1); + DynServer* svt2 = new DynServer; + ServantBase_var scoped_svt2(svt2); + + ObjectId_var id = string_to_ObjectId("myobject"); + + poa1->activate_object_with_id(id.in(), svt1); + poa2->activate_object_with_id(id.in(), svt2); + + obj = poa1->id_to_reference(id.in()); + String_var ior = orb_->object_to_string(obj.in()); + ior_table->bind ("DynObject1", ior.in()); + obj = poa2->id_to_reference(id.in()); + ior = orb_->object_to_string(obj.in()); + ior_table->bind ("DynObject2", ior.in()); + + poaman->activate(); + + runner_.reset(new DynServer_ORB_Runner(orb_.in())); + runner_->activate(); + + ACE_DEBUG((LM_DEBUG, "dynserver: running.\n")); + + } catch (Exception& e) { + ACE_PRINT_EXCEPTION(e, "DynServer::init()"); + } + return 0; +} + +int +DynServer_Loader::fini (void) +{ + ACE_ASSERT(runner_.get() != 0); + try { + + ACE_DEBUG((LM_DEBUG, "dynserver: shutting down.\n")); + + runner_->end(); + runner_.reset(0); + + root_poa_->destroy(1, 1); + orb_->destroy(); + + ACE_DEBUG((LM_DEBUG, "dynserver: shut down successfully.\n")); + + return 0; + + } catch (Exception& e) { + ACE_PRINT_EXCEPTION(e, "DynServer::fini()"); + } + return -1; +} + +Object_ptr +DynServer_Loader::create_object (ORB_ptr, + int, + ACE_TCHAR ** + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((SystemException)) +{ + ACE_THROW_RETURN(NO_IMPLEMENT(), Object::_nil()); +} + +ACE_FACTORY_DEFINE (DynServer, DynServer_Loader) + diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.h b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.h new file mode 100644 index 00000000000..f3529a34305 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver.h @@ -0,0 +1,59 @@ +// $Id$ +#ifndef DYNSERVER_H +#define DYNSERVER_H + +#include "dynserver_export.h" + +#include "testS.h" + +#include "tao/Object_Loader.h" + +#include "ace/Auto_Ptr.h" + +// Trivial test corba object +class DynServer_Export DynServer + : public POA_test + , public PortableServer::RefCountServantBase +{ + int n_; +public: + DynServer(void); + virtual ~DynServer(); + virtual CORBA::Long get() ACE_THROW_SPEC ((CORBA::SystemException)); +}; + +class DynServer_ORB_Runner; + +// This dll supports the service configurator framework +class DynServer_Export DynServer_Loader : public TAO_Object_Loader +{ +public: + DynServer_Loader(void); + + // spawns a thread to run an internal orb which has activated + // a single DynServer servant. + virtual int init (int argc, ACE_TCHAR *argv[]); + + // Allows the service configurator to shutdown the orb + virtual int fini (void); + + // Not supported + virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb, + int argc, + ACE_TCHAR *argv[]) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + CORBA::ORB_var orb_; + PortableServer::POA_var root_poa_; + DynServer service_; + ACE_Auto_Ptr<DynServer_ORB_Runner> runner_; + +private: + ACE_UNIMPLEMENTED_FUNC (DynServer_Loader (const DynServer_Loader &)) + ACE_UNIMPLEMENTED_FUNC (DynServer_Loader &operator = (const DynServer_Loader &)) +}; + +ACE_FACTORY_DECLARE (DynServer, DynServer_Loader) + +#endif diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver_export.h b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver_export.h new file mode 100644 index 00000000000..459e4532891 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/dynserver_export.h @@ -0,0 +1,54 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s DynServer +// ------------------------------ +#ifndef DYNSERVER_EXPORT_H +#define DYNSERVER_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (DYNSERVER_HAS_DLL) +# define DYNSERVER_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && DYNSERVER_HAS_DLL */ + +#if !defined (DYNSERVER_HAS_DLL) +# define DYNSERVER_HAS_DLL 1 +#endif /* ! DYNSERVER_HAS_DLL */ + +#if defined (DYNSERVER_HAS_DLL) && (DYNSERVER_HAS_DLL == 1) +# if defined (DYNSERVER_BUILD_DLL) +# define DynServer_Export ACE_Proper_Export_Flag +# define DYNSERVER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DYNSERVER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DYNSERVER_BUILD_DLL */ +# define DynServer_Export ACE_Proper_Import_Flag +# define DYNSERVER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DYNSERVER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DYNSERVER_BUILD_DLL */ +#else /* DYNSERVER_HAS_DLL == 1 */ +# define DynServer_Export +# define DYNSERVER_SINGLETON_DECLARATION(T) +# define DYNSERVER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DYNSERVER_HAS_DLL == 1 */ + +// Set DYNSERVER_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DYNSERVER_NTRACE) +# if (ACE_NTRACE == 1) +# define DYNSERVER_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DYNSERVER_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DYNSERVER_NTRACE */ + +#if (DYNSERVER_NTRACE == 1) +# define DYNSERVER_TRACE(X) +#else /* (DYNSERVER_NTRACE == 1) */ +# define DYNSERVER_TRACE(X) ACE_TRACE_IMPL(X) +#endif /* (DYNSERVER_NTRACE == 1) */ + +#endif /* DYNSERVER_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/readme b/TAO/orbsvcs/examples/ImR/Combined_Service/readme new file mode 100644 index 00000000000..a17c7cf21e1 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/readme @@ -0,0 +1,28 @@ +Test Description: + +The test consists of several processes and the usual run_test.pl script. + +controller.exe -- This is a simple corba wrapper around the ServiceConfigurator + which takes -c <cmd> and -r options to run a command and + reload the conf file respectively. + +combined_service.exe -- It combines the tao imr locator, activator, and a dynamic + server in a single process. You can use any service + configurator command line options, and it also writes + out a combined.ior file that can be use d with the controller above. + +test_server.exe -- This is a simple tao server that exposes to imr-ified objects + called TestObject1 and TestObject2. You must start it with + -orbuseimr 1 as usual. + +dynserver.dll -- This is the same server as above, except for use with the ServiceConfigurator. + It exposes DynObject1 and DynObject2. This program is not currently used as + part of the run_test.pl + +test.exe -- This is a simple client that invokes the test() operation on the Test object. + Start it with -orbinitref Test=... It can be used against any of the + four objects above. + +Their are also comments within the run_test.pl that describe the +test and expected results at various stages. + diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl b/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl new file mode 100755 index 00000000000..03c9f8423ce --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl @@ -0,0 +1,174 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +############################################################################### +my $ACE_ROOT = $ENV{ACE_ROOT}; + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; +use Cwd; +use Sys::Hostname; +use File::Copy; + +use strict; + +my $cwd = getcwd(); + +if (!defined $ACE_ROOT) { + print "Error: ACE_ROOT not defined.\n"; + return 1; +} + +# this matches the orbendpoint used in start_all.conf +my $imr_corbaloc = "corbaloc::localhost:9999"; +my $imr_initref = "-orbinitref ImplRepoService=$imr_corbaloc/ImplRepoService"; + +my $imr_start_file = PerlACE::LocalFile ("imr_status"); +my $server_start_file = PerlACE::LocalFile ("server_status"); + +my $start_conf = PerlACE::LocalFile ("start_all.conf"); + +my $COMB = new PerlACE::Process (PerlACE::LocalFile ("combined_service")); +my $combined_ior = PerlACE::LocalFile ("combined.ior"); +my $cs_initref = "-orbinitref ServiceConfig=file://$combined_ior"; + +my $SERV = new PerlACE::Process (PerlACE::LocalFile ("test_server")); +my $test_server = $SERV->Executable (); + +my $IMRUTIL = new PerlACE::Process("$ACE_ROOT/bin/tao_imr"); + +my $CLI = new PerlACE::Process ('test'); +my $test_initref = "-orbinitref Test=$imr_corbaloc"; + +my $hostname = hostname(); +############################################################################### + +sub do_test +{ + unlink $combined_ior; + + my $start_time = time(); + + # First we start all the servers, including the test server + $COMB->Arguments("-f $start_conf"); + my $ret = $COMB->Spawn(); + if ($ret != 0) { + print "ERROR : spawning combined service.\n"; + return $ret; + } + + ## Wait a little bit for everything to get started + sleep(2); + + $SERV->Arguments("-orbuseimr 1 $imr_initref"); + my $ret = $SERV->Spawn(); + if ($ret != 0) { + print "ERROR : spawning test server.\n"; + return $ret; + } + + ## Wait a little bit for everything to get started + sleep(2); + + # The client should pass the simple test + $CLI->Arguments("$test_initref/DynObject1"); + $ret = $CLI->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : spawning test client 1.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # The client should pass the simple test again, this time with obj #2 + $CLI->Arguments("$test_initref/DynObject2"); + $ret = $CLI->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : spawning test client 2.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # The server was autoregistered without any start information. We + # need to update the registration with a command line so that the + # activator can be used to re-launch it. + $IMRUTIL->Arguments("$imr_initref update DynObject1 -l $hostname -c \"$test_server -orbuseimr 1 $imr_initref\""); + $ret = $IMRUTIL->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : Updating DynObject1 cmdline.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # The new command line should now be registered, but only for DynObject1 + $IMRUTIL->Arguments("$imr_initref list -v"); + $ret = $IMRUTIL->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : Listing ImR Servers.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # Now we can kill the server. + $IMRUTIL->Arguments("$imr_initref shutdown DynObject1"); + $ret = $IMRUTIL->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : Shutting down test server.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # Both DynObject1 and DynObject2 should now show up as "not running" + $IMRUTIL->Arguments("$imr_initref list -v"); + $ret = $IMRUTIL->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : Listing ImR Servers.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # The client should pass the simple test again, because the Activator will + # restart test_server + $CLI->Arguments("$test_initref/DynObject1"); + $ret = $CLI->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : spawning test client 3.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + # The client should pass the simple test again with obj #2, because both + # are started by the server + $CLI->Arguments("$test_initref/DynObject2"); + $ret = $CLI->SpawnWaitKill(5); + if ($ret != 0) { + print "ERROR : spawning test client 4.\n"; + $COMB->TerminateWaitKill(5); + return $ret; + } + + $COMB->TerminateWaitKill(5); + if ($ret != 0) { + print "ERROR : Terminating combined service.\n"; + return $ret; + } + + $SERV->TerminateWaitKill(5); + if ($ret != 0) { + print "ERROR : Terminating test server.\n"; + return $ret; + } + + unlink $combined_ior; + + return $ret; +} + +my $ret = do_test(); + +#unlink $; + +exit $ret; diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/service_config.idl b/TAO/orbsvcs/examples/ImR/Combined_Service/service_config.idl new file mode 100644 index 00000000000..f4fb3363f8e --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/service_config.idl @@ -0,0 +1,6 @@ +// $Id$ +// Just provides a corba interface to the ACE Service Configurator +interface ServiceConfigurator { + long process_directive(in string s); + void reconfigure(); +}; diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf b/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf new file mode 100644 index 00000000000..0d08cc84a00 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/start_all.conf @@ -0,0 +1,2 @@ +dynamic ImR_Locator_Loader Service_Object * TAO_ImR_Locator:_make_ImR_Locator_Loader() '-orbcollocation per-orb -orbobjrefstyle url -d 1 -orbendpoint iiop://:9999' +dynamic ImR_Activator_Loader Service_Object * TAO_ImR_Activator:_make_ImR_Activator_Loader() '-orbcollocation per-orb -d 1 -orbinitref ImplRepoService=corbaloc::localhost:9999/ImplRepoService' diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/test.cpp b/TAO/orbsvcs/examples/ImR/Combined_Service/test.cpp new file mode 100644 index 00000000000..8ff7f51c364 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/test.cpp @@ -0,0 +1,40 @@ +// $Id$ +// This is a simple test of an ImR using the corba interfaces + +#include "testC.h" + +#include <stdexcept> +#include <sstream> +#include "ace/Log_Msg.h" + +#define assertTrue(CONDITION) \ + if (CONDITION == false) { \ + std::ostringstream oss; \ + oss << "Error : "#CONDITION" "__FILE__":" << __LINE__; \ + throw std::runtime_error(oss.str()); \ + } \ + +using namespace CORBA; + +int main(int argc, char* argv[]) { + + try { + + ORB_var orb = ORB_init(argc, argv); + + Object_var obj = orb->resolve_initial_references("Test"); + test_var test = test::_narrow(obj.in()); + assertTrue(! is_nil(test.in())); + + Long n = test->get(); + Long m = test->get(); + assertTrue(m == n + 1); + + ACE_DEBUG((LM_DEBUG, "All tests ran successfully.\n")); + + return 0; + } catch (CORBA::Exception& e) { + ACE_PRINT_EXCEPTION(e, "test:"); + } + return 1; +} diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/test.idl b/TAO/orbsvcs/examples/ImR/Combined_Service/test.idl new file mode 100644 index 00000000000..9ff40e9c6a9 --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/test.idl @@ -0,0 +1,4 @@ +// $Id$ +interface test { + long get(); +}; diff --git a/TAO/orbsvcs/examples/ImR/Combined_Service/test_server.cpp b/TAO/orbsvcs/examples/ImR/Combined_Service/test_server.cpp new file mode 100644 index 00000000000..cd1647540bb --- /dev/null +++ b/TAO/orbsvcs/examples/ImR/Combined_Service/test_server.cpp @@ -0,0 +1,89 @@ +// $Id$ +// This is a simple test of an ImR using the corba interfaces +// It uses multicast to find the ImplRepoService + +#include "testS.h" + +#include <tao/IORTable/IORTable.h> + +#include <ace/streams.h> +#include <ace/ARGV.h> + +using namespace CORBA; +using namespace PortableServer; + +class test_i : public virtual POA_test { + int n_; +public: + test_i (void) : n_(0) + { + } + virtual ~test_i (void) { + } + virtual CORBA::Long get (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { + ACE_DEBUG((LM_DEBUG, "dynserver: get() %d\n", ++n_)); + return n_; + } +}; + +POA_ptr createPersistPOA(const char* name, POA_ptr root_poa, POAManager_ptr poaman) { + CORBA::PolicyList policies (2); + policies.length (2); + policies[0] = root_poa->create_id_assignment_policy(USER_ID); + policies[1] = root_poa->create_lifespan_policy(PERSISTENT); + POA_var poa = root_poa->create_POA(name, poaman, policies); + policies[0]->destroy(); + policies[1]->destroy(); + return poa._retn(); +} + +int main(int argc, char* argv[]) { + + try { + + ORB_var orb = ORB_init(argc, argv); + + Object_var obj = orb->resolve_initial_references("RootPOA"); + POA_var root_poa = POA::_narrow(obj.in()); + POAManager_var poaman = root_poa->the_POAManager(); + obj = orb->resolve_initial_references ("IORTable"); + IORTable::Table_var ior_table = IORTable::Table::_narrow (obj.in()); + ACE_ASSERT(! is_nil(ior_table.in())); + + ACE_DEBUG((LM_DEBUG, "test_server: creating poas. (Registers with ImR)\n")); + + POA_var poa1 = createPersistPOA("TestObject1", root_poa.in(), poaman.in()); + POA_var poa2 = createPersistPOA("TestObject2", root_poa.in(), poaman.in()); + + ACE_DEBUG((LM_DEBUG, "test_server: activating objects.\n")); + + test_i svt1, svt2; + + ObjectId_var id = string_to_ObjectId("myobject"); + + poa1->activate_object_with_id(id.in(), &svt1); + poa2->activate_object_with_id(id.in(), &svt2); + + obj = poa1->id_to_reference(id.in()); + String_var ior = orb->object_to_string(obj.in()); + ior_table->bind ("TestObject1", ior.in()); + obj = poa2->id_to_reference(id.in()); + ior = orb->object_to_string(obj.in()); + ior_table->bind ("TestObject2", ior.in()); + + poaman->activate(); + + ACE_DEBUG((LM_DEBUG, "test_server: Running...\n")); + + orb->run(); + + ACE_DEBUG((LM_DEBUG, "test_server: Shutting down...\n")); + + root_poa->destroy(1, 1); + orb->destroy(); + + } catch (CORBA::Exception& e) { + ACE_PRINT_EXCEPTION(e, "TestServer::init()"); + } + return 0; +} diff --git a/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp b/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp index 9d4e1856309..c0744809ff2 100644 --- a/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp +++ b/TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp @@ -1,9 +1,10 @@ +// $Id$ + #include "IOR_Multicast.h" #include "tao/debug.h" #include "ace/SOCK_Connector.h" -#include "ace/SString.h" ACE_RCSID (orbsvcs, IOR_Multicast, @@ -16,9 +17,7 @@ TAO_IOR_Multicast::get_handle (void) const } TAO_IOR_Multicast::TAO_IOR_Multicast (void) - : service_id_ ((TAO_Service_ID) 0), - ior_ (0), - mcast_nic_ (0) + : service_id_ ((TAO_Service_ID) 0) { } @@ -26,7 +25,6 @@ TAO_IOR_Multicast::TAO_IOR_Multicast (const char *ior, u_short port, const char *mcast_addr, TAO_Service_ID service_id) - : mcast_nic_ (0) { if (this->init (ior, port, @@ -37,8 +35,6 @@ TAO_IOR_Multicast::TAO_IOR_Multicast (const char *ior, ACE_TEXT ("TAO_IOR_Multicast"))); } -// destructor - TAO_IOR_Multicast::~TAO_IOR_Multicast (void) { if (this->mcast_dgram_.leave (this->mcast_addr_) == -1) @@ -53,13 +49,8 @@ TAO_IOR_Multicast::init (const char *ior, const char *mcast_addr, TAO_Service_ID service_id) { - if (this->mcast_addr_.set (port, - mcast_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "set"), - -1); - + if (this->mcast_addr_.set (port, mcast_addr) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set"), -1); return common_init (ior, service_id); } @@ -69,15 +60,15 @@ TAO_IOR_Multicast::init (const char *ior, TAO_Service_ID service_id) { // Look for a '@' incase a nic is specified. - this->mcast_nic_ = ACE_OS::strchr (mcast_addr, '@'); + const char* tmpnic = ACE_OS::strchr (mcast_addr, '@'); CORBA::String_var actual_mcast_addr; CORBA::ULong length_addr; - if (this->mcast_nic_ != 0) + if (tmpnic != 0) { // i.e. a nic name has been specified - length_addr = this->mcast_nic_ - mcast_addr + 1; + length_addr = tmpnic - mcast_addr + 1; actual_mcast_addr = CORBA::string_alloc (length_addr); ACE_OS::strncpy (actual_mcast_addr.inout (), @@ -87,13 +78,13 @@ TAO_IOR_Multicast::init (const char *ior, actual_mcast_addr[length_addr - 1] = '\0'; /// Save for use later. - this->mcast_nic_ = this->mcast_nic_ + 1; + this->mcast_nic_ = tmpnic + 1; } else { actual_mcast_addr = - CORBA::string_alloc (ACE_static_cast (CORBA::ULong, - ACE_OS::strlen (mcast_addr))); + CORBA::string_alloc (ACE_static_cast(CORBA::ULong, + ACE_OS::strlen (mcast_addr))); actual_mcast_addr = mcast_addr; } @@ -128,15 +119,12 @@ TAO_IOR_Multicast::common_init (const char *ior, } // Use ACE_SOCK_Dgram_Mcast factory to subscribe to multicast group. - if (this->mcast_nic_ != 0) + if (this->mcast_nic_.length() != 0) { if (this->mcast_dgram_.subscribe (this->mcast_addr_, 1, - ACE_TEXT_CHAR_TO_TCHAR(this->mcast_nic_)) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "subscribe"), - -1); + ACE_TEXT_CHAR_TO_TCHAR(this->mcast_nic_.c_str())) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "subscribe"),-1); } else { @@ -216,9 +204,6 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) service_name, ACE_NTOHS (remote_port))); - // Our reply data. - ACE_CString ior (this->ior_); - if (ACE_OS::strcmp (service_name, "NameService") != 0 && ACE_OS::strcmp (service_name, @@ -230,9 +215,8 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) && ACE_OS::strcmp (service_name, "MCASTServer") != 0) { - ACE_ERROR_RETURN ((LM_ERROR, - "Unknown service requested.\n"), - 0); + ACE_ERROR_RETURN ((LM_ERROR, + "IOR_Multicast::connect() Unknown service requested.\n"),0); } // Reply to the multicast message. @@ -242,17 +226,14 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) ACE_SOCK_Stream stream; // Connect. - if (connector.connect (stream, - peer_addr) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "IOR_Multicast::connect failed\n"), - 0); + if (connector.connect (stream, peer_addr) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "IOR_Multicast::connect failed\n"), 0); // Send the IOR back to the client. (Send iovec, which contains ior // length as the first element, and ior itself as the second.) // Length of ior to be sent. CORBA::Short data_len = - ACE_static_cast (CORBA::Short, ACE_HTONS (ior.length () + 1)); + ACE_static_cast(CORBA::Short, ACE_HTONS (this->ior_.length () + 1)); // Vector to be sent. const int cnt = 2; @@ -263,11 +244,10 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) iovp[0].iov_len = sizeof (CORBA::Short); // The ior. - iovp[1].iov_base = ACE_const_cast (char*, ior.c_str ()); - iovp[1].iov_len = ACE_static_cast (u_long, ior.length () + 1); + iovp[1].iov_base = ACE_const_cast (char*, this->ior_.c_str ()); + iovp[1].iov_len = ACE_static_cast(u_long, this->ior_.length () + 1); - ssize_t result = stream.sendv_n (iovp, - cnt); + ssize_t result = stream.sendv_n (iovp, cnt); // Close the stream. stream.close (); @@ -280,9 +260,11 @@ TAO_IOR_Multicast::handle_input (ACE_HANDLE) "(%P|%t) ior_: <%s>\n" "sent to %s:%u.\n" "result from send = %d\n", - ior.c_str (), + this->ior_.c_str (), peer_addr.get_host_name (), peer_addr.get_port_number (), result)); return 0; } + + diff --git a/TAO/orbsvcs/orbsvcs/IOR_Multicast.h b/TAO/orbsvcs/orbsvcs/IOR_Multicast.h index 863106d7487..2c2e76bb9ca 100644 --- a/TAO/orbsvcs/orbsvcs/IOR_Multicast.h +++ b/TAO/orbsvcs/orbsvcs/IOR_Multicast.h @@ -20,11 +20,10 @@ #ifndef TAO_IOR_MULTICAST_H #define TAO_IOR_MULTICAST_H - -#include /**/ "ace/pre.h" +#include "ace/pre.h" #include "orbsvcs/svc_utils_export.h" -#include "tao/ORB.h" +#include "tao/corba.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -33,6 +32,7 @@ #include "ace/INET_Addr.h" #include "ace/SOCK_Dgram_Mcast.h" #include "ace/Reactor.h" +#include "ace/SString.h" class TAO_Svc_Utils_Export TAO_IOR_Multicast : public ACE_Event_Handler { @@ -66,7 +66,7 @@ public: // Initialization method. Takes in "address:port" string as a // parameter. - ~TAO_IOR_Multicast (void); + virtual ~TAO_IOR_Multicast (void); // Destructor. virtual int handle_input (ACE_HANDLE n); @@ -84,9 +84,6 @@ private: TAO_Service_ID service_id); // Factor common functionality from the two init functions. - char buf_[BUFSIZ]; - // temporary buffer. - TAO_Service_ID service_id_; // Service id that we're waiting for. @@ -96,7 +93,7 @@ private: ACE_INET_Addr mcast_addr_; // multicast address - const char *ior_; + ACE_CString ior_; // object reference to send in response to the multicast ACE_INET_Addr response_addr_; @@ -105,9 +102,8 @@ private: ACE_SOCK_Dgram response_; // socket for response to the multicast - const char *mcast_nic_; + ACE_CString mcast_nic_; }; -#include /**/ "ace/post.h" - +#include "ace/post.h" #endif /* TAO_IOR_MULTICAST_H */ diff --git a/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl index cefff878d6a..3a175f364db 100755 --- a/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl +++ b/TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl @@ -36,7 +36,7 @@ unlink $pfile; ################################################################################ ## Start the implementation Repository Locator -$IMR_LOCATOR->Arguments ("-o $imr_locator_ior "); +$IMR_LOCATOR->Arguments ("-p $pfile -o $imr_locator_ior -d 1"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { @@ -47,7 +47,7 @@ if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { ## Start the implementation Repository Activator -$IMR_ACTIVATOR->Arguments ("-o $imr_activator_ior -d 0 -p $pfile -ORBInitRef ImplRepoService=file://$imr_locator_ior"); +$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) { @@ -63,9 +63,9 @@ if (PerlACE::waitforfile_timed ($imr_activator_ior, 10) == -1) { print "===== Adding a server\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" - . " add Foo -c foobarbaz"); + . " add Foo -c foobarbaz"); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); if ($taoimr != 0) { print STDERR "ERROR: tao_imr (add) returned $taoimr\n"; @@ -75,9 +75,9 @@ if ($taoimr != 0) { print "===== Updating a server\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" - . " update Foo -w foodir"); + . " update Foo -w foodir" ); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); if ($taoimr != 0) { print STDERR "ERROR: tao_imr (update) returned $taoimr\n"; @@ -89,7 +89,7 @@ print "===== Removing a server\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" . " remove Foo"); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); if ($taoimr != 0) { print STDERR "ERROR: tao_imr (remove) returned $taoimr\n"; @@ -101,7 +101,7 @@ print "===== Readding a server\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" . " add Foo -c foobarbaz"); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); if ($taoimr != 0) { print STDERR "ERROR: tao_imr (add) returned $taoimr\n"; @@ -120,19 +120,10 @@ 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; - ################################################################################ ## Restart the Implementation Repository in locked mode. -$IMR_LOCATOR->Arguments ("-o $imr_locator_ior "); +$IMR_LOCATOR->Arguments ("-l -p $pfile -o $imr_locator_ior -d 1"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { @@ -141,27 +132,31 @@ if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { exit 1; } -$IMR_ACTIVATOR->Arguments ("-o $imr_activator_ior -d 0 -l -p $pfile -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 +print "===== Listing registered servers.\n"; + +$TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" + . " list"); + +$taoimr = $TAO_IMR->SpawnWaitKill (10); + +if ($taoimr != 0) { + print STDERR "ERROR: tao_imr (list) returned $taoimr\n"; + ++$errors; +} + print "===== Adding a server (should fail)\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" . " add Foo2 -c foobarbaz"); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); -if ($taoimr != 2) { +## Note : If you receive a 5 (NOT_FOUND) then it's likely that +## persistence isn't working correctly. +if ($taoimr != 2) { # NO_PERMISSION print STDERR "ERROR: tao_imr (add) returned $taoimr\n"; ++$errors; } @@ -171,9 +166,9 @@ print "===== Updating a server (should fail)\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" . " update Foo -w foodir"); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); -if ($taoimr != 2) { +if ($taoimr != 2) { # NO_PERMISSION print STDERR "ERROR: tao_imr (update) returned $taoimr\n"; ++$errors; } @@ -183,9 +178,9 @@ print "===== Removing a server (should fail)\n"; $TAO_IMR->Arguments("-ORBInitRef ImplRepoService=file://$imr_locator_ior" . " remove Foo"); -$taoimr = $TAO_IMR->SpawnWaitKill (60); +$taoimr = $TAO_IMR->SpawnWaitKill (10); -if ($taoimr != 2) { +if ($taoimr != 2) { # NO_PERMISSION print STDERR "ERROR: tao_imr (remove) returned $taoimr\n"; ++$errors; } diff --git a/TAO/orbsvcs/tests/ImplRepo/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/run_test.pl index 02f68b6eeaa..d6112ea7fa0 100755 --- a/TAO/orbsvcs/tests/ImplRepo/run_test.pl +++ b/TAO/orbsvcs/tests/ImplRepo/run_test.pl @@ -30,7 +30,7 @@ $imr_locator_ior = PerlACE::LocalFile ("imr_locator.ior"); $refstyle = " -ORBobjrefstyle URL"; -$backing_store = "imr_backing_store"; +$backing_store = "imr_backing_store.xml"; $nestea_dat = "nestea.dat"; $protocol = "iiop"; @@ -41,7 +41,7 @@ $endpoint = "-ORBEndpoint " . "$protocol" . "://" . "$host" . ":" . $port; $IMR_LOCATOR = new PerlACE::Process ("../../ImplRepo_Service/ImplRepo_Service"); $IMR_ACTIVATOR = new PerlACE::Process ("../../ImplRepo_Service/ImR_Activator"); -$TAO_IMR = new PerlACE::Process("$ACE_ROOT/bin/tao_imr"); +$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. @@ -139,7 +139,7 @@ sub nt_service_test my $result = 0; # Just to show that it's possible, this test uses corbaloc instead of ior file. - my $imr_initref = "-orbinitref ImplRepoService=corbaloc::localhost:8888/ImplRepoService"; + my $imr_initref = "-orbinitref ImplRepoService=corbaloc::localhost:8888/ImplRepoService"; # To avoid having to ensure that they LocalSystem account has the correct path # we simply copy the imr executables to the same directory as the DLL's. @@ -245,7 +245,7 @@ sub airplane_ir_test my $imr_initref = "-ORBInitRef ImplRepoService=file://$imr_locator_ior"; - $IMR_LOCATOR->Arguments ("-d 1 -o $imr_locator_ior"); + $IMR_LOCATOR->Arguments ("-d 2 -o $imr_locator_ior"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 5) == -1) { @@ -254,7 +254,7 @@ sub airplane_ir_test return 1; } - $IMR_ACTIVATOR->Arguments ("-d 1 -o $imr_activator_ior $imr_initref"); + $IMR_ACTIVATOR->Arguments ("-d 2 -o $imr_activator_ior $imr_initref"); $IMR_ACTIVATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_activator_ior, 5) == -1) { @@ -264,13 +264,13 @@ sub airplane_ir_test } $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" - . $A_SVR->Executable () - . " -ORBUseIMR 1 -o $airplane_ior $imr_initref\""); + . $A_SVR->Executable () + . " -ORBUseIMR 1 -o $airplane_ior $imr_initref\""); $result = $TAO_IMR->SpawnWaitKill (5); if ($result != 0) { print STDERR "ERROR: tao_imr returned $result\n"; - $IMR_ACTIVATOR->Kill (); + $IMR_ACTIVATOR->Kill (); $IMR_LOCATOR->Kill (); return 1; } @@ -281,7 +281,7 @@ sub airplane_ir_test if (PerlACE::waitforfile_timed ($airplane_ior, 10) == -1) { print STDERR "ERROR: cannot find $airplane_ior\n"; $IMR_ACTIVATOR->Kill (); - $IMR_LOCATOR->Kill (); + $IMR_LOCATOR->Kill (); $A_SVR->Kill (); return 1; } @@ -341,9 +341,9 @@ sub nestea_ir_test my $status = 0; my $result = 0; - my $imr_initref = "-ORBInitRef ImplRepoService=file://$imr_locator_ior"; + my $imr_initref = "-orbobjrefstyle URL -ORBInitRef ImplRepoService=file://$imr_locator_ior"; - $IMR_LOCATOR->Arguments ("-d 1 -o $imr_locator_ior"); + $IMR_LOCATOR->Arguments ("-d 2 -o $imr_locator_ior"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { @@ -352,13 +352,13 @@ sub nestea_ir_test return 1; } - $IMR_ACTIVATOR->Arguments ("-d 1 -o $imr_activator_ior $imr_initref"); + $IMR_ACTIVATOR->Arguments ("-d 2 -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 (); + $IMR_LOCATOR->Kill (); return 1; } @@ -446,21 +446,23 @@ sub persistent_ir_test my $imr_initref = "-ORBInitRef ImplRepoService=file://$imr_locator_ior"; - $IMR_LOCATOR->Arguments ("-d 1 -o $imr_locator_ior"); + ## Be sure to start the ImR on a consistent endpoint, so that any created IORs + ## remain valid even if the ImR restarts. + $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 $implrepo_ior\n"; $IMR_LOCATOR->Kill (); - return 1; + return 1; } - $IMR_ACTIVATOR->Arguments ("-d 1 -o $imr_activator_ior -p $backing_store $imr_initref"); + $IMR_ACTIVATOR->Arguments ("-d 2 -o $imr_activator_ior $imr_initref"); $IMR_ACTIVATOR->Spawn (); - if (PerlACE::waitforfile_timed ($imr_activator_ior, 30) == -1) { + if (PerlACE::waitforfile_timed ($imr_activator_ior, 10) == -1) { print STDERR "ERROR: cannot find $imr_activator_ior\n"; $IMR_ACTIVATOR->Kill (); - $IMR_LOCATOR->Kill (); + $IMR_LOCATOR->Kill (); return 1; } @@ -472,6 +474,10 @@ sub persistent_ir_test return 1; } + ## This will write out the imr-ified IOR. Note : If you don't use -orbendpoint + ## when starting the ImR, then this IOR will no longer be valid when the ImR + ## restarts below. You can fix this by creating a new valid IOR, or starting + ## the ImR on a consistent endpoint. $A_SVR->Arguments ("-o $airplane_ior -ORBUseIMR 1 $refstyle $imr_initref"); $A_SVR->Spawn (); @@ -482,14 +488,14 @@ sub persistent_ir_test return 1; } - $TAO_IMR->Arguments ("$imr_initref shutdown airplane_server"); - $result = $A_CLI->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: airplane client returned $result\n"; $status = 1; } + $TAO_IMR->Arguments ("$imr_initref shutdown airplane_server"); + $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: tao_imr shutdown returned $result\n"; @@ -509,6 +515,7 @@ sub persistent_ir_test $status = 1; } + # Shutdown airplane_server $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: tao_imr shutdown 2 returned $result\n"; @@ -519,21 +526,14 @@ sub persistent_ir_test # managed by perl, and we can't wait for it to die. So sleep a few secs. sleep(5); - my $implrepo = $IMR_ACTIVATOR->TerminateWaitKill (5); - if ($implrepo != 0) { - print STDERR "ERROR: IMR_Activator returned $implrepo\n"; - $status = 1; - } - - $implrepo = $IMR_LOCATOR->TerminateWaitKill (5); + my $implrepo = $IMR_LOCATOR->TerminateWaitKill (5); if ($implrepo != 0) { print STDERR "ERROR: IMR_Locator returned $implrepo\n"; $status = 1; } - # Unlink so that we can wait on them again to know the servers started. + # Unlink so that we can wait on them again to know the server started. unlink $imr_locator_ior; - unlink $imr_activator_ior; print "Restarting Implementation Repository.\n"; $IMR_LOCATOR->Spawn (); @@ -543,15 +543,6 @@ sub persistent_ir_test return 1; } - # Should reload the server list without having to run tao_imr again. - $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; - } - # Should cause the activator to spawn another server. $result = $A_CLI->SpawnWaitKill (20); if ($result != 0) { @@ -559,6 +550,7 @@ sub persistent_ir_test $status = 1; } + # Shutdown airplane_server $result = $TAO_IMR->SpawnWaitKill (10); if ($result != 0) { print STDERR "ERROR: tao_imr shutdown 3 returned $result\n"; @@ -581,7 +573,7 @@ sub persistent_ir_test $status = 1; } - return $status; + return $status; } ############################################################################### @@ -592,7 +584,7 @@ sub both_ir_test my $imr_initref = "-ORBInitRef ImplRepoService=file://$imr_locator_ior"; - $IMR_LOCATOR->Arguments ("-d 1 -o $imr_locator_ior $refstyle"); + $IMR_LOCATOR->Arguments ("-d 2 -o $imr_locator_ior $refstyle"); $IMR_LOCATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) { @@ -601,24 +593,24 @@ sub both_ir_test return 1; } - $IMR_ACTIVATOR->Arguments ("-o $imr_activator_ior $imr_initref $refstyle -d 1"); + $IMR_ACTIVATOR->Arguments ("-o $imr_activator_ior $imr_initref $refstyle -d 2"); $IMR_ACTIVATOR->Spawn (); if (PerlACE::waitforfile_timed ($imr_activator_ior, 10) == -1) { print STDERR "ERROR: cannot find $imr_activator_ior\n"; - $IMR_ACTIVATOR->Kill (); + $IMR_ACTIVATOR->Kill (); $IMR_LOCATOR->Kill (); return 1; } $TAO_IMR->Arguments ("$imr_initref add nestea_server -c \"" - . $N_SVR->Executable () - . " -ORBUseIMR 1 $refstyle -o $nestea_ior $imr_initref\""); + . $N_SVR->Executable () + . " -ORBUseIMR 1 $refstyle -o $nestea_ior $imr_initref\""); $TAO_IMR->SpawnWaitKill (10); - $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" - . $A_SVR->Executable () - . " -ORBUseIMR 1 $refstyle -o $airplane_ior $imr_initref\""); + $TAO_IMR->Arguments ("$imr_initref add airplane_server -c \"" + . $A_SVR->Executable () + . " -ORBUseIMR 1 $refstyle -o $airplane_ior $imr_initref\""); $TAO_IMR->SpawnWaitKill (10); $N_SVR->Arguments (" -o $nestea_ior -ORBUseIMR 1 $refstyle $imr_initref"); @@ -629,7 +621,7 @@ sub both_ir_test if (PerlACE::waitforfile_timed ($nestea_ior, 10) == -1) { print STDERR "ERROR: cannot find $nestea_ior\n"; - $IMR_ACTIVATOR->Kill (); + $IMR_ACTIVATOR->Kill (); $IMR_LOCATOR->Kill (); $A_SVR->Kill (); $N_SVR->Kill (); @@ -639,7 +631,7 @@ sub both_ir_test if (PerlACE::waitforfile_timed ($airplane_ior, 10) == -1) { print STDERR "ERROR: cannot find $airplane_ior\n"; $IMR_ACTIVATOR->Kill (); - $IMR_LOCATOR->Kill (); + $IMR_LOCATOR->Kill (); $A_SVR->Kill (); $N_SVR->Kill (); return 1; @@ -651,7 +643,7 @@ sub both_ir_test $A_CLI->Spawn (); $N_CLI->WaitKill (10); - $A_CLI->WaitKill (10); + $A_CLI->WaitKill (20); $TAO_IMR->Arguments ("$imr_initref shutdown nestea_server"); $TAO_IMR->SpawnWaitKill (10); @@ -683,42 +675,55 @@ sub both_ir_test # Parse the arguments +$ret = 0; + +if ($#ARGV >= 0) { for ($i = 0; $i <= $#ARGV; $i++) { if ($ARGV[$i] eq "-h" || $ARGV[$i] eq "-?") { print "run_test test\n"; print "\n"; print "test -- Runs a specific test:\n"; - print " airplane, airplane_ir, nt_service, ", + print " airplane, airplane_ir, nt_service_ir, ", "nestea, nestea_ir,\n"; print " both_ir, persistent_ir\n"; - exit; + exit 1; } elsif ($ARGV[$i] eq "airplane") { - exit airplane_test (); + $ret = airplane_test (); } elsif ($ARGV[$i] eq "airplane_ir") { - exit airplane_ir_test (); + $ret = airplane_ir_test (); } elsif ($ARGV[$i] eq "nt_service_ir") { - exit nt_service_test (); + $ret = nt_service_test (); } elsif ($ARGV[$i] eq "nestea") { - exit nestea_test (); + $ret = nestea_test (); } elsif ($ARGV[$i] eq "nestea_ir") { - exit nestea_ir_test (); + $ret = nestea_ir_test (); } elsif ($ARGV[$i] eq "both_ir") { - exit both_ir_test (); + $ret = both_ir_test (); } elsif ($ARGV[$i] eq "persistent_ir") { - exit persistent_ir_test (); + $ret = persistent_ir_test (); } else { print "run_test: Unknown Option: ".$ARGV[$i]."\n"; } } +} else { + $ret = both_ir_test(); +} -# if nothing else, run both_ir -exit both_ir_test (); +# Make sure the files are gone, so we can wait on them. +unlink $airplane_ior; +unlink $nestea_ior; +unlink $imr_locator_ior; +unlink $imr_activator_ior; +unlink $backing_store; +unlink $nestea.dat; + +exit $ret; diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/client.conf b/TAO/orbsvcs/tests/ImplRepo/scale/client.conf new file mode 100644 index 00000000000..87e77efbd29 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/client.conf @@ -0,0 +1,4 @@ +# This file is here just in case you want to run some of the tests manually +# and don't want the client to jump back in the reactor during the +# invocation. +static Client_Strategy_Factory "-ORBClientConnectionHandler rw" diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/client.cpp b/TAO/orbsvcs/tests/ImplRepo/scale/client.cpp new file mode 100644 index 00000000000..f5e1e660533 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/client.cpp @@ -0,0 +1,41 @@ +// $Id$ +// This is a simple test of an ImR using the corba interfaces +// Start with -orbinitref Test=... + +#include "testC.h" +#include "ace/Log_Msg.h" + +using namespace CORBA; + +int main(int argc, char* argv[]) { + + ACE_TRY_NEW_ENV + { + + ORB_var orb = ORB_init(argc, argv, 0 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + Object_var obj = orb->resolve_initial_references("Test" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + test_var test = test::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! is_nil(test.in())); + + Long n = test->get(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + Long m = test->get(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + if (m == n + 1) + ACE_DEBUG((LM_DEBUG, "Client: All tests ran successfully.\n")); + else + ACE_DEBUG((LM_DEBUG, "Error: Client Expected %d = %d + 1.\n", m, n)); + + return 0; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "client:"); + } + ACE_ENDTRY; + return -1; +} diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/scale/run_test.pl new file mode 100755 index 00000000000..ccbc5f6ba44 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/run_test.pl @@ -0,0 +1,217 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +############################################################################### +my $ACE_ROOT = $ENV{ACE_ROOT}; + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; +use Cwd; +use Sys::Hostname; +use File::Copy; + +use strict; + +my $cwd = getcwd(); + +if (!defined $ACE_ROOT) { + print "Error: ACE_ROOT not defined.\n"; + return 1; +} + +my $imr_activator_ior = PerlACE::LocalFile ("imr_activator.ior"); +my $imr_locator_ior = PerlACE::LocalFile ("imr_locator.ior"); + +my $refstyle = " -ORBobjrefstyle URL"; + +my $persistxml = PerlACE::LocalFile ("persist.xml"); +my $persist = PerlACE::LocalFile ("persist.dat"); + +my $IMR_LOCATOR = new PerlACE::Process ("$ACE_ROOT/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service"); +my $IMR_ACTIVATOR = new PerlACE::Process ("$ACE_ROOT/TAO/orbsvcs/ImplRepo_Service/ImR_Activator"); +my $TAO_IMR = new PerlACE::Process("$ACE_ROOT/bin/tao_imr"); + +my $SVR = new PerlACE::Process (PerlACE::LocalFile ("server")); +my $CLI = new PerlACE::Process (PerlACE::LocalFile ("client")); + +my $servers_count = 1; +my $obj_count = 1; +my $use_activator = 0; + +my $objprefix = "TstObj"; +my $client_wait_time = 5; + +# Make sure the files are gone, so we can wait on them. +unlink $imr_locator_ior; +unlink $imr_activator_ior; +unlink $persistxml; +unlink $persist; + +sub scale_test +{ + print "Running scale test with $servers_count servers and $obj_count objects.\n"; + + my $status = 0; + my $result = 0; + my $start_time = time(); + + my $imr_initref = "-ORBInitRef ImplRepoService=file://$imr_locator_ior"; + + $IMR_LOCATOR->Arguments ("-d 1 -o $imr_locator_ior -orbendpoint iiop://:9876"); + $IMR_LOCATOR->Spawn (); + if (PerlACE::waitforfile_timed ($imr_locator_ior, 5) == -1) { + print STDERR "ERROR: cannot find $imr_locator_ior\n"; + $IMR_LOCATOR->Kill (); + return 1; + } + + if ($use_activator) { + + $IMR_ACTIVATOR->Arguments ("-d 1 -o $imr_activator_ior $imr_initref"); + $IMR_ACTIVATOR->Spawn (); + if (PerlACE::waitforfile_timed ($imr_activator_ior, 5) == -1) { + print STDERR "ERROR: cannot find $imr_activator_ior\n"; + $IMR_ACTIVATOR->Kill (); + return 1; + } + + for(my $i = 0; $i < $servers_count; $i++) { + for (my $j = 0; $j < $obj_count; $j++) { + $TAO_IMR->Arguments ("$imr_initref add $objprefix" . '_' . $i . "_" . $j . " -c \"" + . $SVR->Executable () + . " -ORBUseIMR 1 -p $objprefix" . '_' . "$i -c $obj_count $imr_initref\""); + + $result = $TAO_IMR->SpawnWaitKill (5); + if ($result != 0) { + print STDERR "ERROR: tao_imr returned $result\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + } + } + + $TAO_IMR->Arguments ("$imr_initref list"); + $result = $TAO_IMR->SpawnWaitKill (25); + if ($result != 0) { + print STDERR "ERROR: tao_imr list returned $result\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + return 1; + } + } + + for(my $i = 0; $i < $servers_count; $i++ ) { + + my $server_start_file = PerlACE::LocalFile ($objprefix . "_$i.status"); + unlink $server_start_file; + + if (! $use_activator) { + $SVR->Arguments ("-ORBUseIMR 1 -p $objprefix" . '_' . "$i -c $obj_count $imr_initref"); + $SVR->Spawn (); + if (PerlACE::waitforfile_timed ($server_start_file, 10) == -1) { + print STDERR "ERROR: cannot find $server_start_file\n"; + $IMR_ACTIVATOR->Kill (); + $IMR_LOCATOR->Kill (); + $SVR->Kill (); + return 1; + } + } else { + # For some reason the servers take forever to spawn when using the activator + $client_wait_time *= $obj_count; + } + unlink $server_start_file; + + for (my $j = 0; $j < $obj_count; $j++) { + $CLI->Arguments ("-orbinitref Test=corbaloc::localhost:9876/$objprefix" . '_' . $i . '_' . $j); + $result = $CLI->SpawnWaitKill ($client_wait_time); + if ($result != 0) { + print STDERR "ERROR: client returned $result\n"; + $status = 1; + last; + } + } + + # Shutting down any server object within the server will shutdown the whole server + $TAO_IMR->Arguments ("$imr_initref shutdown $objprefix" . '_' . $i . "_0"); + $result = $TAO_IMR->SpawnWaitKill (10); + if ($result != 0) { + print STDERR "ERROR: tao_imr shutdown returned $result\n"; + $status = 1; + last; + } + if (! $use_activator) { + $result = $SVR->WaitKill(5); + if ($result != 0) { + print STDERR "ERROR: server not shutdown correctly.\n"; + $status = 1; + last; + } + } + + if ($status == 1) { + last; + } + } + + if ($use_activator) { + my $imr_activator = $IMR_ACTIVATOR->TerminateWaitKill (5); + if ($imr_activator != 0) { + print STDERR "ERROR: IMR returned $imr_activator\n"; + $status = 1; + } + } + + my $imr_locator = $IMR_LOCATOR->TerminateWaitKill (5); + if ($imr_locator != 0) { + print STDERR "ERROR: IMR returned $imr_locator\n"; + $status = 1; + } + + my $test_time = time() - $start_time; + my $total_objs = $obj_count * $servers_count; + + print "\nFinished. The test took $test_time seconds for $total_objs imr-ified objects.\n"; + + return $status; +} + +sub usage() { + print "Usage: run_test.pl [-servers <num=1>] [-objects <num=1>] [-use_activator]\n"; +} + +############################################################################### +############################################################################### + +if ($#ARGV >= 0) { + for (my $i = 0; $i <= $#ARGV; $i++) { + if ($ARGV[$i] eq "-servers") { + $i++; + $servers_count = $ARGV[$i]; + } + elsif ($ARGV[$i] eq "-objects") { + $i++; + $obj_count = $ARGV[$i]; + } + elsif ($ARGV[$i] eq "-use_activator") { + $use_activator = 1; + } + else { + usage(); + exit 1; + } + } +} + +my $ret = scale_test(); + +unlink $imr_locator_ior; +unlink $imr_activator_ior; +unlink $persistxml; +unlink $persist; + +exit $ret; diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/scaletest.mpc b/TAO/orbsvcs/tests/ImplRepo/scale/scaletest.mpc new file mode 100644 index 00000000000..c8aac2aa078 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/scaletest.mpc @@ -0,0 +1,24 @@ +project(*server) : portableserver, orbsvcsexe, minimum_corba, iortable { + IDL_Files { + test.idl + } + + Source_Files { + testC.cpp + testS.cpp + server_i.cpp + server.cpp + } +} + +project(*client) : portableserver, orbsvcsexe, minimum_corba, iortable { + IDL_Files { + test.idl + } + + Source_Files { + testC.cpp + testS.cpp + client.cpp + } +} diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/server.cpp b/TAO/orbsvcs/tests/ImplRepo/scale/server.cpp new file mode 100644 index 00000000000..769d8126ae4 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/server.cpp @@ -0,0 +1,37 @@ +// $Id$ + +#include "server_i.h" + +int +main (int argc, char *argv[]) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + Server_i server; + + int retval = server.init (argc, argv ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + if (retval == -1) + return -1; + else + { + server.run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + } + ACE_CATCH (CORBA::SystemException, sysex) + { + ACE_PRINT_EXCEPTION (sysex, "Server: System Exception"); + return -1; + } + ACE_CATCH (CORBA::UserException, userex) + { + ACE_PRINT_EXCEPTION (userex, "Server: User Exception"); + return -1; + } + ACE_ENDTRY; + + return 0; +} diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp b/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp new file mode 100644 index 00000000000..1e66342e764 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/server_i.cpp @@ -0,0 +1,228 @@ +// $Id$ + +#include "server_i.h" + +#include "tao/IORTable/IORTable.h" + +#include "ace/Get_Opt.h" +#include "ace/Read_Buffer.h" +#include "ace/streams.h" + +class test_i + : public virtual POA_test + , PortableServer::RefCountServantBase +{ + int n_; + CORBA::ORB_var orb_; +public: + test_i (CORBA::ORB_ptr orb) + : n_(0) + , orb_(CORBA::ORB::_duplicate(orb)) + { + } + virtual ~test_i () { + } + virtual CORBA::Long get (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { + ++n_; + CORBA::Object_var obj = orb_->resolve_initial_references("POACurrent" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + PortableServer::Current_var cur = PortableServer::Current::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + ACE_ASSERT(! CORBA::is_nil(cur.in())); + PortableServer::POA_var poa = cur->get_POA(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + CORBA::String_var poaname = poa->the_name(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN(0); + + ACE_DEBUG((LM_DEBUG, "%s: get() %d\n", poaname.in(), n_)); + return n_; + } +}; + +// The server name of the Aiprlane Server +static const char DEFAULT_SERVER_NAME[] = "TestObject"; + +Server_i::Server_i (void) +: server_name_(DEFAULT_SERVER_NAME) +, count_(1) +{ +} + +Server_i::~Server_i() +{ +} + +int +Server_i::parse_args (int argc, char* argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "p:c:h"); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'p': // prefix for all created objects + this->server_name_ = get_opts.opt_arg (); + break; + case 'c': // Number of imr-ified objects to create. + this->count_ = ACE_OS::atoi(get_opts.opt_arg()); + break; + case '?': // display help for use of the server. + case 'h': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s" + " [-c] <count=1> ImR-ified objects." + " [-p] <prefix=%s> To all ImR-ified object names." + "\n", + argv[0], + DEFAULT_SERVER_NAME),1); + } + } + + return 0; +} + +namespace +{ + ACE_CString toStr(int n) + { + char buf[20]; + return ACE_OS::itoa(n, buf, 10); + } +} + +int +Server_i::init (int argc, char** argv ACE_ENV_ARG_DECL) +{ + ACE_TRY + { + this->orb_ = CORBA::ORB_init (argc, argv, 0 ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + int retval = this->parse_args (argc, argv); + if (retval != 0) + return retval; + + CORBA::Object_var obj = + this->orb_->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + this->root_poa_ = + PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(this->root_poa_.in())); + + PortableServer::POAManager_var poa_manager = + this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + obj = this->orb_->resolve_initial_references ("IORTable" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + IORTable::Table_var ior_table = + IORTable::Table::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + ACE_ASSERT(! CORBA::is_nil(ior_table.in())); + + // If -orbuseimr 1 is specified then all persistent poas will be + // registered with the imr. + CORBA::PolicyList policies (2); + policies.length (2); + policies[0] = this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + policies[1] = this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + test_i* test_svt; + ACE_NEW_RETURN (test_svt, test_i(orb_.in()), -1); + PortableServer::ServantBase_var scoped_svt(test_svt); + + PortableServer::ObjectId_var server_id = + PortableServer::string_to_ObjectId ("Test"); + + // Create count_ POAs, activate an object in each, and register the object with + // the IORTable. + for (int i = 0; i < this->count_; ++i) + { + ACE_CString name = this->server_name_ + "_" + toStr(i); + + PortableServer::POA_var poa = + this->root_poa_->create_POA (name.c_str(), + poa_manager.in (), + policies + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa->activate_object_with_id (server_id.in (), test_svt ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + obj = poa->id_to_reference (server_id.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + CORBA::String_var ior = this->orb_->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + ior_table->bind (name.c_str(), ior.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + + policies[0]->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + policies[1]->destroy(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Server_i::init"); + ACE_RE_THROW; + } + ACE_ENDTRY; + + ACE_CHECK_RETURN (-1); + + return 0; +} + +int +Server_i::run (ACE_ENV_SINGLE_ARG_DECL) +{ + ACE_TRY + { + PortableServer::POAManager_var poa_manager = + this->root_poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + // We have potentially lots of IORs, so just write out a simple text + // file that the run_test.pl can use to know we're done. + { + ACE_CString status = this->server_name_ + ACE_CString(".status"); + ofstream out(status.c_str()); + out << "started" << endl; + } + + ACE_DEBUG ((LM_DEBUG, + "\n Started Server %s with %d imr-ified objects.\n\n", + this->server_name_.c_str(), + this->count_)); + + this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + this->root_poa_->destroy(1, 1); + this->orb_->destroy(); + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Server_i::run"); + ACE_RE_THROW; + } + ACE_ENDTRY; + + ACE_CHECK_RETURN (-1); + + return 0; +} + diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/server_i.h b/TAO/orbsvcs/tests/ImplRepo/scale/server_i.h new file mode 100644 index 00000000000..222b179634a --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/server_i.h @@ -0,0 +1,32 @@ +// -*- C++ -*- +// $Id$ + +#if !defined (SERVER_I_H) +#define SERVER_I_H + +#include "testS.h" + +#include "ace/Auto_Ptr.h" +#include "ace/SString.h" + +class Server_i +{ +public: + Server_i (void); + ~Server_i (void); + + int init (int argc, char **argv ACE_ENV_ARG_DECL); + + int run (ACE_ENV_SINGLE_ARG_DECL); + +private: + int parse_args (int argc, char* argv[]); + + CORBA::ORB_var orb_; + PortableServer::POA_var root_poa_; + + ACE_CString server_name_; + int count_; +}; + +#endif /* SERVER_I_H */ diff --git a/TAO/orbsvcs/tests/ImplRepo/scale/test.idl b/TAO/orbsvcs/tests/ImplRepo/scale/test.idl new file mode 100644 index 00000000000..9ff40e9c6a9 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/scale/test.idl @@ -0,0 +1,4 @@ +// $Id$ +interface test { + long get(); +}; diff --git a/TAO/tao/PortableServer.mpc b/TAO/tao/PortableServer.mpc index a007761a246..5770d921724 100644 --- a/TAO/tao/PortableServer.mpc +++ b/TAO/tao/PortableServer.mpc @@ -1,9 +1,13 @@ //$Id$ -project : taolib, core { +project : taolib_with_idl, core { sharedname = TAO_PortableServer dynamicflags = TAO_PORTABLESERVER_BUILD_DLL + idlflags += -Wb,export_macro=TAO_PortableServer_Export -Wb,export_include=portableserver_export.h -o PortableServer + Source_Files { + PortableServer/ImplRepoC.cpp + PortableServer/ImplRepoS.cpp PortableServer } @@ -23,7 +27,8 @@ project : taolib, core { PortableServer } - PIDL_Files { - PortableServer + IDL_Files { + gendir = PortableServer + PortableServer/ImplRepo.idl } } diff --git a/TAO/tao/PortableServer/ImR_Locator.pidl b/TAO/tao/PortableServer/ImR_Locator.pidl deleted file mode 100644 index 3dbd54e6eda..00000000000 --- a/TAO/tao/PortableServer/ImR_Locator.pidl +++ /dev/null @@ -1,86 +0,0 @@ -// -*- IDL -*- - -//============================================================================= -/** - * @file ImR_Locator.pidl - * - * $Id$ - * - * This file was used to generate the code in ImplRepo{C,S}.{h,i,cpp} - * - * The command used to generate code from this file is: - * - * tao_idl.exe -Gp -Gd -Ge 1 -Sc -GT -Wb,export_macro=TAO_PortableServer_Export -Wb,export_include=portableserver_export.h -Wb,pre_include="ace/pre.h" -Wb,post_include="ace/post.h" ImR_Locator.pidl - * - * After generation is complete you must remove unneeded explicit instantiations - * from ImR_LocatorC.cpp to avoid duplicate symbols on some platforms. - * - */ -//============================================================================= - -#include "ImplRepo.pidl" - -module ImplementationRepository -{ - interface Locator : Administration - { - typedef sequence <string> ServerNameList; - - void activate_server_in_activator (in string server, - in string activator) - raises (NotFound, - CannotActivate); - // Activate server that is named <server> in the ImR_Activator <activator> - // - // The <NotFound> exception is raised when <server> is not found - // in the Implementation Repository. The <CannotActivate> exception - // is raised when <server> is found in the Repository but could not be - // activated. - - void remove_server_in_activator (in string server, - in string activator) - raises (NotFound); - // Remove <server> from the Implementation Repository. - // - // The <NotFound> exception is raised when <server> is not found - // in the Implementation Repository. - - void shutdown_server_in_activator (in string server, - in string activator) - raises (NotFound); - // Tries to shutdown the server, first gracefully, then ungracefully. - // - // The <NotFound> exception is raised when <server> is not found - // in the Implementation Repository. - - void server_is_shutting_down_in_activator (in string server, - in string activator) - raises (NotFound); - // Used to tell the Implementation Repository that <server> is shutting - // down. - // - // The <NotFound> exception is raised when <server> is not found - // in the Implementation Repository. - - long register_activator (in string activator, - in Administration admin, - in ServerNameList servers); - // returns a token that can be used (along with activator name) to unregister the activator. - - void unregister_activator (in string activator, in long token); - // You must pass in the token returned from register_activator. - - void server_is_running_in_activator (in string server, - in string activator, - in Address addr, - in ServerObject server_object) - raises (NotFound); - - void find_in_activator (in string server, - in string activator, - out ServerInformation info) - raises (NotFound); - }; - -}; - diff --git a/TAO/tao/PortableServer/ImR_LocatorC.cpp b/TAO/tao/PortableServer/ImR_LocatorC.cpp deleted file mode 100644 index 69eb28988f7..00000000000 --- a/TAO/tao/PortableServer/ImR_LocatorC.cpp +++ /dev/null @@ -1,1547 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:321 - - -#include "ImR_LocatorC.h" -#include "tao/CDR.h" -#include "tao/Exception_Data.h" -#include "tao/Invocation_Adapter.h" -#include "tao/Object_T.h" -#include "tao/Typecode.h" -#include "tao/Any_Impl_T.h" -#include "tao/Any_Dual_Impl_T.h" -#include "tao/Basic_Arguments.h" -#include "tao/Object_Argument_T.h" -#include "tao/UB_String_Arguments.h" -#include "tao/Var_Size_Argument_T.h" -#include "ace/OS_NS_string.h" - -#if defined (__BORLANDC__) -#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig -#endif /* __BORLANDC__ */ - -#if !defined (__ACE_INLINE__) -#include "ImR_LocatorC.inl" -#endif /* !defined INLINE */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:64 - -// Arg traits specializations. -namespace TAO -{ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerObject> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - TAO::Objref_Traits<ImplementationRepository::ServerObject> - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::StartupOptions> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformation> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:379 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationList> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - > - { - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationIterator> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> - > - { - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::Administration> - : public - Object_Arg_Traits_T< - ImplementationRepository::Administration_ptr, - ImplementationRepository::Administration_var, - ImplementationRepository::Administration_out, - TAO::Objref_Traits<ImplementationRepository::Administration> - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:379 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::Locator::ServerNameList> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::Locator::ServerNameList, - ImplementationRepository::Locator::ServerNameList_var, - ImplementationRepository::Locator::ServerNameList_out - > - { - }; - -#endif /* end #if !defined */ -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for ImplementationRepository::Locator. - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::Locator_ptr -TAO::Objref_Traits<ImplementationRepository::Locator>::duplicate ( - ImplementationRepository::Locator_ptr p - ) -{ - return ImplementationRepository::Locator::_duplicate (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -void -TAO::Objref_Traits<ImplementationRepository::Locator>::release ( - ImplementationRepository::Locator_ptr p - ) -{ - CORBA::release (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::Locator_ptr -TAO::Objref_Traits<ImplementationRepository::Locator>::nil (void) -{ - return ImplementationRepository::Locator::_nil (); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -CORBA::Boolean -TAO::Objref_Traits<ImplementationRepository::Locator>::marshal ( - ImplementationRepository::Locator_ptr p, - TAO_OutputCDR & cdr - ) -{ - return CORBA::Object::marshal (p, cdr); -} - -// Function pointer for collocation factory initialization. -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ) = 0; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/sequence_cs.cpp:65 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST_CS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST_CS_ - -ImplementationRepository::Locator::ServerNameList::ServerNameList (void) -{} - -ImplementationRepository::Locator::ServerNameList::ServerNameList ( - CORBA::ULong max - ) - : TAO_Unbounded_String_Sequence - (max) -{} - -ImplementationRepository::Locator::ServerNameList::ServerNameList ( - CORBA::ULong max, - CORBA::ULong length, - char * * buffer, - CORBA::Boolean release - ) - : TAO_Unbounded_String_Sequence - (max, length, buffer, release) -{} - -ImplementationRepository::Locator::ServerNameList::ServerNameList ( - const ServerNameList &seq - ) - : TAO_Unbounded_String_Sequence - (seq) -{} - -ImplementationRepository::Locator::ServerNameList::~ServerNameList (void) -{} - -void ImplementationRepository::Locator::ServerNameList::_tao_any_destructor ( - void * _tao_void_pointer - ) -{ - ServerNameList * _tao_tmp_pointer = - static_cast<ServerNameList *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_Locator_ServerNameList[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 56, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f4c6f63), - ACE_NTOHL (0x61746f72), - ACE_NTOHL (0x2f536572), - ACE_NTOHL (0x7665724e), - ACE_NTOHL (0x616d654c), - ACE_NTOHL (0x6973743a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/Locator/ServerNameList:1.0 - 15, - ACE_NTOHL (0x53657276), - ACE_NTOHL (0x65724e61), - ACE_NTOHL (0x6d654c69), - ACE_NTOHL (0x73740000), // name = ServerNameList - CORBA::tk_sequence, // typecode kind - 16, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - CORBA::tk_string, - 0U, // string length - 0U, - -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_Locator_ServerNameList ( - CORBA::tk_alias, - sizeof (_oc_ImplementationRepository_Locator_ServerNameList), - (char *) &_oc_ImplementationRepository_Locator_ServerNameList, - 0, - sizeof (ImplementationRepository::Locator::ServerNameList) - ); - -::CORBA::TypeCode_ptr ImplementationRepository::Locator::_tc_ServerNameList = - &_tc_TAO_tc_ImplementationRepository_Locator_ServerNameList; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::activate_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_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_activator (activator); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_activator - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Locator_activate_server_in_activator_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, - 3, - "activate_server_in_activator", - 28, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Locator_activate_server_in_activator_exceptiondata, - 2 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::remove_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_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_activator (activator); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_activator - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Locator_remove_server_in_activator_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 3, - "remove_server_in_activator", - 26, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Locator_remove_server_in_activator_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::shutdown_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_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_activator (activator); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_activator - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Locator_shutdown_server_in_activator_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 3, - "shutdown_server_in_activator", - 28, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Locator_shutdown_server_in_activator_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::server_is_shutting_down_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_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_activator (activator); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_activator - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Locator_server_is_shutting_down_in_activator_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 3, - "server_is_shutting_down_in_activator", - 36, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Locator_server_is_shutting_down_in_activator_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -CORBA::Long ImplementationRepository::Locator::register_activator ( - const char * activator, - ::ImplementationRepository::Administration_ptr admin, - const ::ImplementationRepository::Locator::ServerNameList & 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_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_setup_collocation (); - } - - TAO::Arg_Traits< CORBA::Long>::ret_val _tao_retval; - TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val _tao_activator (activator); - TAO::Arg_Traits< ::ImplementationRepository::Administration>::in_arg_val _tao_admin (admin); - TAO::Arg_Traits< ::ImplementationRepository::Locator::ServerNameList>::in_arg_val _tao_servers (servers); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_activator, - &_tao_admin, - &_tao_servers - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 4, - "register_activator", - 18, - this->the_TAO_Locator_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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::unregister_activator ( - const char * activator, - ::CORBA::Long token - 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_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_setup_collocation (); - } - - TAO::Arg_Traits< void>::ret_val _tao_retval; - TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val _tao_activator (activator); - TAO::Arg_Traits< CORBA::Long>::in_arg_val _tao_token (token); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_activator, - &_tao_token - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 3, - "unregister_activator", - 20, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::server_is_running_in_activator ( - const char * server, - const char * activator, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_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_activator (activator); - TAO::Arg_Traits< ::ImplementationRepository::Address>::in_arg_val _tao_addr (addr); - TAO::Arg_Traits< ::ImplementationRepository::ServerObject>::in_arg_val _tao_server_object (server_object); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_activator, - &_tao_addr, - &_tao_server_object - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Locator_server_is_running_in_activator_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 5, - "server_is_running_in_activator", - 30, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Locator_server_is_running_in_activator_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Locator::find_in_activator ( - const char * server, - const char * activator, - ::ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_Locator_Proxy_Broker_ == 0) - { - ImplementationRepository_Locator_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_activator (activator); - TAO::Arg_Traits< ::ImplementationRepository::ServerInformation>::out_arg_val _tao_info (info); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_activator, - &_tao_info - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Locator_find_in_activator_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 4, - "find_in_activator", - 17, - this->the_TAO_Locator_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Locator_find_in_activator_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -ImplementationRepository::Locator::Locator (void) - : the_TAO_Locator_Proxy_Broker_ (0) -{ - this->ImplementationRepository_Locator_setup_collocation (); -} - -void -ImplementationRepository::Locator::ImplementationRepository_Locator_setup_collocation () -{ - if (::ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer) - { - this->the_TAO_Locator_Proxy_Broker_ = - ::ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer (this); - } - - this->ImplementationRepository_Administration_setup_collocation (); -} - -ImplementationRepository::Locator::~Locator (void) -{} - -void -ImplementationRepository::Locator::_tao_any_destructor (void *_tao_void_pointer) -{ - Locator *_tao_tmp_pointer = - static_cast<Locator *> (_tao_void_pointer); - CORBA::release (_tao_tmp_pointer); -} - -ImplementationRepository::Locator_ptr -ImplementationRepository::Locator::_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<Locator>::narrow ( - _tao_objref, - "IDL:ImplementationRepository/Locator:1.0", - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::Locator_ptr -ImplementationRepository::Locator::_unchecked_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<Locator>::unchecked_narrow ( - _tao_objref, - "IDL:ImplementationRepository/Locator:1.0", - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::Locator_ptr -ImplementationRepository::Locator::_duplicate (Locator_ptr obj) -{ - if (! CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -CORBA::Boolean -ImplementationRepository::Locator::_is_a ( - const char *value - ACE_ENV_ARG_DECL - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/Administration:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/Locator:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; // success using local knowledge - } - else - { - return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ( - value - ACE_ENV_ARG_PARAMETER - ); - } -} - -const char* ImplementationRepository::Locator::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/Locator:1.0"; -} - -CORBA::Boolean -ImplementationRepository::Locator::marshal (TAO_OutputCDR &cdr) -{ - return (cdr << this); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_Locator[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 41, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f4c6f63), - ACE_NTOHL (0x61746f72), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/Locator:1.0 - 8, - ACE_NTOHL (0x4c6f6361), - ACE_NTOHL (0x746f7200), // name = Locator - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_Locator ( - CORBA::tk_objref, - sizeof (_oc_ImplementationRepository_Locator), - (char *) &_oc_ImplementationRepository_Locator, - 0, - sizeof (ImplementationRepository::Locator) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_Locator = - &_tc_TAO_tc_ImplementationRepository_Locator; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Impl_T<ImplementationRepository::Locator>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const -{ - _tao_elem = CORBA::Object::_duplicate (this->value_); - return 1; -} - -// Copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::Locator_ptr _tao_elem - ) -{ - ImplementationRepository::Locator_ptr _tao_objptr = - ImplementationRepository::Locator::_duplicate (_tao_elem); - _tao_any <<= &_tao_objptr; -} - -// Non-copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::Locator_ptr *_tao_elem - ) -{ - TAO::Any_Impl_T<ImplementationRepository::Locator>::insert ( - _tao_any, - ImplementationRepository::Locator::_tao_any_destructor, - ImplementationRepository::_tc_Locator, - *_tao_elem - ); -} - -CORBA::Boolean -operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::Locator_ptr &_tao_elem - ) -{ - return - TAO::Any_Impl_T<ImplementationRepository::Locator>::extract ( - _tao_any, - ImplementationRepository::Locator::_tao_any_destructor, - ImplementationRepository::_tc_Locator, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/any_op_cs.cpp:54 - -// Copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - const ImplementationRepository::Locator::ServerNameList &_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::Locator::ServerNameList>::insert_copy ( - _tao_any, - ImplementationRepository::Locator::ServerNameList::_tao_any_destructor, - ImplementationRepository::Locator::_tc_ServerNameList, - _tao_elem - ); -} - -// Non-copying insertion. -void operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::Locator::ServerNameList *_tao_elem - ) -{ - TAO::Any_Dual_Impl_T<ImplementationRepository::Locator::ServerNameList>::insert ( - _tao_any, - ImplementationRepository::Locator::ServerNameList::_tao_any_destructor, - ImplementationRepository::Locator::_tc_ServerNameList, - _tao_elem - ); -} - -// Extraction to non-const pointer (deprecated). -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::Locator::ServerNameList *&_tao_elem - ) -{ - return _tao_any >>= const_cast< - const ImplementationRepository::Locator::ServerNameList *&> ( - _tao_elem - ); -} - -// Extraction to const pointer. -CORBA::Boolean operator>>= ( - const CORBA::Any &_tao_any, - const ImplementationRepository::Locator::ServerNameList *&_tao_elem - ) -{ - return - TAO::Any_Dual_Impl_T<ImplementationRepository::Locator::ServerNameList>::extract ( - _tao_any, - ImplementationRepository::Locator::ServerNameList::_tao_any_destructor, - ImplementationRepository::Locator::_tc_ServerNameList, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/cdr_op_cs.cpp:96 - -#if !defined _TAO_CDR_OP_ImplementationRepository_Locator_ServerNameList_CPP_ -#define _TAO_CDR_OP_ImplementationRepository_Locator_ServerNameList_CPP_ - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::Locator::ServerNameList &_tao_sequence - ) -{ - const CORBA::ULong _tao_seq_len = _tao_sequence.length (); - - if (strm << _tao_seq_len) - { - // Encode all elements. - CORBA::Boolean _tao_marshal_flag = 1; - - for (CORBA::ULong i = 0; i < _tao_seq_len && _tao_marshal_flag; ++i) - { - _tao_marshal_flag = (strm << _tao_sequence[i].in ()); - } - - return _tao_marshal_flag; - } - - return 0; -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::Locator::ServerNameList &_tao_sequence - ) -{ - CORBA::ULong _tao_seq_len; - - if (strm >> _tao_seq_len) - { - // Add a check to the length of the sequence - // to make sure it does not exceed the length - // of the stream. (See bug 58.) - if (_tao_seq_len > strm.length ()) - { - return 0; - } - - // Set the length of the sequence. - _tao_sequence.length (_tao_seq_len); - - // If length is 0 we return true. - if (0 >= _tao_seq_len) - { - return 1; - } - - // Retrieve all the elements. - CORBA::Boolean _tao_marshal_flag = 1; - - for (CORBA::ULong i = 0; i < _tao_seq_len && _tao_marshal_flag; ++i) - { - _tao_marshal_flag = (strm >> _tao_sequence[i].out ()); - - } - - return _tao_marshal_flag; - - } - -return 0; -} - -#endif /* _TAO_CDR_OP_ImplementationRepository_Locator_ServerNameList_CPP_ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_cs.cpp:63 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::Locator_ptr _tao_objref - ) -{ - CORBA::Object_ptr _tao_corba_obj = _tao_objref; - return (strm << _tao_corba_obj); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::Locator_ptr &_tao_objref - ) -{ - CORBA::Object_var obj; - - if ((strm >> obj.inout ()) == 0) - { - return 0; - } - - typedef ::ImplementationRepository::Locator RHS_SCOPED_NAME; - - // Narrow to the right type. - _tao_objref = - TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow ( - obj.in (), - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer - ); - - return 1; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:1628 - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_ - - template class - TAO::Arg_Traits< - ImplementationRepository::ServerObject - >; - - template class - TAO::Object_Arg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - TAO::Objref_Traits<ImplementationRepository::ServerObject> - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::StartupOptions>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::ServerInformation>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SEQUENCE__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SEQUENCE__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::ServerInformationList>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_ - - template class - TAO::Arg_Traits< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO::Object_Arg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_TMPLINST_CS_ - - template class - TAO::Arg_Traits< - ImplementationRepository::Administration - >; - - template class - TAO::Object_Arg_Traits_T< - ImplementationRepository::Administration_ptr, - ImplementationRepository::Administration_var, - ImplementationRepository::Administration_out, - TAO::Objref_Traits<ImplementationRepository::Administration> - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::Locator::ServerNameList>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::Locator::ServerNameList, - ImplementationRepository::Locator::ServerNameList_var, - ImplementationRepository::Locator::ServerNameList_out - >; - -#endif /* end #if !defined */ - - template class - TAO_MngSeq_Var_T< - ImplementationRepository::Locator::ServerNameList, - TAO_SeqElem_String_Manager - >; - - template class - TAO_Seq_Var_Base_T< - ImplementationRepository::Locator::ServerNameList, - TAO_SeqElem_String_Manager - >; - - template class - TAO_MngSeq_Out_T< - ImplementationRepository::Locator::ServerNameList, - ImplementationRepository::Locator::ServerNameList_var, - TAO_SeqElem_String_Manager - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::Locator::ServerNameList - >; - - template class - TAO::In_Object_Argument_T< - ImplementationRepository::Administration_ptr - >; - - template class - TAO::In_Var_Size_Argument_T< - ImplementationRepository::Locator::ServerNameList - >; - - template class - TAO::In_Object_Argument_T< - ImplementationRepository::ServerObject_ptr - >; - - template class - TAO::Out_Var_Size_Argument_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_out - >; - - template class - TAO::Objref_Traits< - ImplementationRepository::Locator - >; - - template class - TAO_Objref_Var_T< - ImplementationRepository::Locator - >; - - template class - TAO_Objref_Out_T< - ImplementationRepository::Locator - >; - - template class - TAO::Narrow_Utils< - ImplementationRepository::Locator - >; - - template class - TAO::Any_Impl_T< - ImplementationRepository::Locator - >; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate \ - TAO::Arg_Traits< \ - ImplementationRepository::ServerObject \ - > - -# pragma instantiate \ - TAO::Object_Arg_Traits_T< \ - ImplementationRepository::ServerObject_ptr, \ - ImplementationRepository::ServerObject_var, \ - ImplementationRepository::ServerObject_out, \ - TAO::Objref_Traits<ImplementationRepository::ServerObject> \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::StartupOptions> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::StartupOptions, \ - ImplementationRepository::StartupOptions_var, \ - ImplementationRepository::StartupOptions_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::ServerInformation> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_var, \ - ImplementationRepository::ServerInformation_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SEQUENCE__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SEQUENCE__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::ServerInformationList> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_var, \ - ImplementationRepository::ServerInformationList_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate \ - TAO::Arg_Traits< \ - ImplementationRepository::ServerInformationIterator \ - > - -# pragma instantiate \ - TAO::Object_Arg_Traits_T< \ - ImplementationRepository::ServerInformationIterator_ptr, \ - ImplementationRepository::ServerInformationIterator_var, \ - ImplementationRepository::ServerInformationIterator_out, \ - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate \ - TAO::Arg_Traits< \ - ImplementationRepository::Administration \ - > - -# pragma instantiate \ - TAO::Object_Arg_Traits_T< \ - ImplementationRepository::Administration_ptr, \ - ImplementationRepository::Administration_var, \ - ImplementationRepository::Administration_out, \ - TAO::Objref_Traits<ImplementationRepository::Administration> \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::Locator::ServerNameList> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::Locator::ServerNameList, \ - ImplementationRepository::Locator::ServerNameList_var, \ - ImplementationRepository::Locator::ServerNameList_out \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO_MngSeq_Var_T< \ - ImplementationRepository::Locator::ServerNameList, \ - TAO_SeqElem_String_Manager \ - > - -# pragma instantiate \ - TAO_Seq_Var_Base_T< \ - ImplementationRepository::Locator::ServerNameList, \ - TAO_SeqElem_String_Manager \ - > - -# pragma instantiate \ - TAO_MngSeq_Out_T< \ - ImplementationRepository::Locator::ServerNameList, \ - ImplementationRepository::Locator::ServerNameList_var, \ - TAO_SeqElem_String_Manager \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::Locator::ServerNameList \ - > - -# pragma instantiate \ - TAO::In_Object_Argument_T< \ - ImplementationRepository::Administration_ptr \ - > - -# pragma instantiate \ - TAO::In_Var_Size_Argument_T< \ - ImplementationRepository::Locator::ServerNameList \ - > - -# pragma instantiate \ - TAO::In_Object_Argument_T< \ - ImplementationRepository::ServerObject_ptr \ - > - -# pragma instantiate \ - TAO::Out_Var_Size_Argument_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_out \ - > - -# pragma instantiate \ - TAO::Objref_Traits< \ - ImplementationRepository::Locator \ - > - -# pragma instantiate \ - TAO_Objref_Var_T< \ - ImplementationRepository::Locator - > - -# pragma instantiate \ - TAO_Objref_Out_T< \ - ImplementationRepository::Locator - > - -# pragma instantiate \ - TAO::Narrow_Utils< \ - ImplementationRepository::Locator \ - > - -# pragma instantiate \ - TAO::Any_Impl_T< \ - ImplementationRepository::Locator \ - > - -#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/PortableServer/ImR_LocatorC.h b/TAO/tao/PortableServer/ImR_LocatorC.h deleted file mode 100644 index 04204a62336..00000000000 --- a/TAO/tao/PortableServer/ImR_LocatorC.h +++ /dev/null @@ -1,460 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:171 - -#ifndef _TAO_IDL_IMR_LOCATORC_H_ -#define _TAO_IDL_IMR_LOCATORC_H_ - -#include /**/ "ace/pre.h" - - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "portableserver_export.h" -#include "tao/ORB.h" -#include "tao/Environment.h" -#include "tao/Object.h" -#include "tao/Sequence_T.h" -#include "tao/Objref_VarOut_T.h" -#include "tao/Seq_Var_T.h" -#include "tao/Seq_Out_T.h" - -#include "ImplRepoC.h" - -#if defined (TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO TAO_PortableServer_Export - -#if defined (TAO_EXPORT_NESTED_CLASSES) -# if defined (TAO_EXPORT_NESTED_MACRO) -# undef TAO_EXPORT_NESTED_MACRO -# endif /* defined (TAO_EXPORT_NESTED_MACRO) */ -# define TAO_EXPORT_NESTED_MACRO TAO_PortableServer_Export -#endif /* TAO_EXPORT_NESTED_CLASSES */ - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option push -w-rvl -w-rch -w-ccc -w-inl -#endif /* __BORLANDC__ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root_ch.cpp:63 - -namespace TAO -{ - class Collocation_Proxy_Broker; - - template<typename T> class Narrow_Utils; - template<typename T> class AbstractBase_Narrow_Utils; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_ch.cpp:48 - -namespace ImplementationRepository -{ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:611 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR__VAR_OUT_CH_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR__VAR_OUT_CH_ - - class Locator; - typedef Locator *Locator_ptr; - - typedef - TAO_Objref_Var_T< - Locator - > - Locator_var; - - typedef - TAO_Objref_Out_T< - Locator - > - Locator_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_CH_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_CH_ - - class TAO_PortableServer_Export Locator - : public virtual ::ImplementationRepository::Administration - { - public: - friend class TAO::Narrow_Utils<Locator>; - typedef Locator_ptr _ptr_type; - typedef Locator_var _var_type; - - // The static operations. - static Locator_ptr _duplicate (Locator_ptr obj); - - static Locator_ptr _narrow ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static Locator_ptr _unchecked_narrow ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static Locator_ptr _nil (void) - { - return (Locator_ptr)0; - } - - static void _tao_any_destructor (void *); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/sequence_ch.cpp:101 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST_CH_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST_CH_ - - class ServerNameList; - - typedef - TAO_MngSeq_Var_T< - ServerNameList, - TAO_SeqElem_String_Manager - > - ServerNameList_var; - - typedef - TAO_MngSeq_Out_T< - ServerNameList, - ServerNameList_var, - TAO_SeqElem_String_Manager - > - ServerNameList_out; - - class TAO_PortableServer_Export ServerNameList - : public - TAO_Unbounded_String_Sequence - { - public: - ServerNameList (void); - ServerNameList (CORBA::ULong max); - ServerNameList ( - CORBA::ULong max, - CORBA::ULong length, - char ** buffer, - CORBA::Boolean release = 0 - ); - ServerNameList (const ServerNameList &); - ~ServerNameList (void); - - static void _tao_any_destructor (void *); - - typedef ServerNameList_var _var_type; - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - static ::CORBA::TypeCode_ptr _tc_ServerNameList; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void activate_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void remove_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void shutdown_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void server_is_shutting_down_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual CORBA::Long register_activator ( - const char * activator, - ::ImplementationRepository::Administration_ptr admin, - const ::ImplementationRepository::Locator::ServerNameList & servers - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void unregister_activator ( - const char * activator, - ::CORBA::Long token - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void server_is_running_in_activator ( - const char * server, - const char * activator, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void find_in_activator ( - const char * server, - const char * activator, - ::ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:208 - - 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_Locator_Proxy_Broker_; - - protected: - // Concrete interface only. - Locator (void); - - // These methods travese the inheritance tree and set the - // parents piece of the given class in the right mode. - virtual void ImplementationRepository_Locator_setup_collocation (void); - - // Concrete non-local interface only. - Locator ( - IOP::IOR *ior, - TAO_ORB_Core *orb_core = 0 - ); - - // Non-local interface only. - Locator ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated = 0, - TAO_Abstract_ServantBase *servant = 0, - TAO_ORB_Core *orb_core = 0 - ); - - virtual ~Locator (void); - - private: - // Private and unimplemented for concrete interfaces. - Locator (const Locator &); - - void operator= (const Locator &); - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_Locator; - -// TAO_IDL - Generated from -// E:\doc_cvs\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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:120 - -extern TAO_PortableServer_Export -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_traits.cpp:59 - -// Traits specializations. -namespace TAO -{ - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR__TRAITS_CH_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR__TRAITS_CH_ - - ACE_TEMPLATE_SPECIALIZATION - struct TAO_PortableServer_Export Objref_Traits<ImplementationRepository::Locator> - { - static ImplementationRepository::Locator_ptr duplicate ( - ImplementationRepository::Locator_ptr - ); - static void release ( - ImplementationRepository::Locator_ptr - ); - static ImplementationRepository::Locator_ptr nil (void); - static CORBA::Boolean marshal ( - ImplementationRepository::Locator_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::Locator_ptr); // copying -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::Locator_ptr *); // non-copying -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::Locator_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::Locator::ServerNameList &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::Locator::ServerNameList*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::Locator::ServerNameList *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::Locator::ServerNameList *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_ch.cpp:55 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::Locator_ptr ); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::Locator_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/cdr_op_ch.cpp:71 - -#if !defined _TAO_CDR_OP_ImplementationRepository_Locator_ServerNameList_H_ -#define _TAO_CDR_OP_ImplementationRepository_Locator_ServerNameList_H_ - -TAO_PortableServer_Export CORBA::Boolean operator<< ( - TAO_OutputCDR &, - const ImplementationRepository::Locator::ServerNameList & - ); -TAO_PortableServer_Export CORBA::Boolean operator>> ( - TAO_InputCDR &, - ImplementationRepository::Locator::ServerNameList & - ); - -#endif /* _TAO_CDR_OP_ImplementationRepository_Locator_ServerNameList_H_ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:976 - -#if defined (__ACE_INLINE__) -#include "ImR_LocatorC.inl" -#endif /* defined INLINE */ - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option pop -#endif /* __BORLANDC__ */ - -#include /**/ "ace/post.h" - -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/ImR_LocatorC.inl b/TAO/tao/PortableServer/ImR_LocatorC.inl deleted file mode 100644 index 4908d458454..00000000000 --- a/TAO/tao/PortableServer/ImR_LocatorC.inl +++ /dev/null @@ -1,64 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:70 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR___CI_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR___CI_ - -ACE_INLINE -ImplementationRepository::Locator::Locator ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated, - TAO_Abstract_ServantBase *servant, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) ( - objref, - _tao_collocated, - servant, - oc - ), - the_TAO_Locator_Proxy_Broker_ (0) -{ - this->ImplementationRepository_Locator_setup_collocation (); -} - -ACE_INLINE -ImplementationRepository::Locator::Locator ( - IOP::IOR *ior, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) (ior, oc), - the_TAO_Locator_Proxy_Broker_ (0) -{ -} - -#endif /* end #if !defined */ - diff --git a/TAO/tao/PortableServer/ImR_LocatorS.cpp b/TAO/tao/PortableServer/ImR_LocatorS.cpp deleted file mode 100644 index fed027a95c4..00000000000 --- a/TAO/tao/PortableServer/ImR_LocatorS.cpp +++ /dev/null @@ -1,3940 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:629 - -#ifndef _TAO_IDL_IMR_LOCATORS_CPP_ -#define _TAO_IDL_IMR_LOCATORS_CPP_ - - -#include "ImR_LocatorS.h" -#include "tao/PortableServer/Object_Adapter.h" -#include "tao/PortableServer/Operation_Table.h" -#include "tao/TAO_Server_Request.h" -#include "tao/ORB_Core.h" -#include "tao/Profile.h" -#include "tao/Stub.h" -#include "tao/IFR_Client_Adapter.h" -#include "tao/Object_T.h" -#include "tao/Typecode.h" -#include "tao/DynamicC.h" -#include "tao/CDR.h" -#include "tao/Basic_Arguments.h" -#include "tao/Object_Argument_T.h" -#include "tao/UB_String_Arguments.h" -#include "tao/Var_Size_Argument_T.h" -#include "tao/PortableInterceptor.h" -#if TAO_HAS_INTERCEPTORS == 1 -#include "tao/PortableServer/PICurrent_Guard.h" -#include "tao/PortableServer/ServerRequestInfo.h" -#include "tao/PortableServer/ServerInterceptorAdapter.h" -#include "tao/RequestInfo_Util.h" -#endif /* TAO_HAS_INTERCEPTORS == 1 */ - -#include "ace/Dynamic_Service.h" -#include "ace/Malloc_Allocator.h" -#include "ace/config-all.h" - -#if defined (__BORLANDC__) -#pragma option -w-rvl -w-rch -w-ccc -w-aus -#endif /* __BORLANDC__ */ - -#if !defined (__ACE_INLINE__) -#include "ImR_LocatorS.inl" -#endif /* !defined INLINE */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:64 - -// Arg traits specializations. -namespace TAO -{ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerObject> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - TAO::Objref_Traits<ImplementationRepository::ServerObject> - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::StartupOptions> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformation> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:379 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationList> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - > - { - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationIterator> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> - > - { - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::Administration> - : public - Object_Arg_Traits_T< - ImplementationRepository::Administration_ptr, - ImplementationRepository::Administration_var, - ImplementationRepository::Administration_out, - TAO::Objref_Traits<ImplementationRepository::Administration> - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:379 - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::Locator::ServerNameList> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::Locator::ServerNameList, - ImplementationRepository::Locator::ServerNameList_var, - ImplementationRepository::Locator::ServerNameList_out - > - { - }; - -#endif /* end #if !defined */ -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1536 - -class TAO_ImplementationRepository_Locator_Perfect_Hash_OpTable - : public TAO_Perfect_Hash_OpTable -{ -private: - unsigned int hash (const char *str, unsigned int len); - -public: - const TAO_operation_db_entry * lookup (const char *str, unsigned int len); -}; - -/* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0,0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_Locator_Perfect_Hash_OpTable -N lookup */ -unsigned int -TAO_ImplementationRepository_Locator_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) -{ - static const unsigned char asso_values[] = - { -#if defined (ACE_MVS) - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 25, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 10, - 54, 54, 0, 15, 15, 0, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 0, 54, 15, - 10, 15, 54, 0, 54, 54, 54, 54, 54, 54, - 54, 54, 5, 10, 10, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, -#else - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 25, 54, 10, 54, 54, - 0, 15, 15, 0, 54, 54, 54, 54, 0, 54, - 15, 10, 15, 54, 0, 5, 10, 10, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, -#endif /* ACE_MVS */ - }; - return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; -} - -const class TAO_operation_db_entry * -TAO_ImplementationRepository_Locator_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len) -{ - enum - { - TOTAL_KEYWORDS = 24, - MIN_WORD_LENGTH = 4, - MAX_WORD_LENGTH = 36, - MIN_HASH_VALUE = 13, - MAX_HASH_VALUE = 53, - HASH_VALUE_RANGE = 41, - DUPLICATES = 0, - WORDLIST_SIZE = 37 - }; - - static const class TAO_operation_db_entry wordlist[] = - { - {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"remove_server", &POA_ImplementationRepository::Locator::remove_server_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::remove_server, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::remove_server}, - {"list", &POA_ImplementationRepository::Locator::list_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::list, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::list}, - {"register_server", &POA_ImplementationRepository::Locator::register_server_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::register_server, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::register_server}, - {"",0,0,0}, - {"reregister_server", &POA_ImplementationRepository::Locator::reregister_server_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::reregister_server, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::reregister_server}, - {"register_activator", &POA_ImplementationRepository::Locator::register_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::register_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::register_activator}, - {"find", &POA_ImplementationRepository::Locator::find_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::find, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::find}, - {"shutdown_server", &POA_ImplementationRepository::Locator::shutdown_server_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::shutdown_server, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::shutdown_server}, - {"",0,0,0}, - {"server_is_running", &POA_ImplementationRepository::Locator::server_is_running_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_running, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_running}, - {"find_ior", &POA_ImplementationRepository::Locator::find_ior_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::find_ior, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::find_ior}, - {"",0,0,0}, - {"activate_server", &POA_ImplementationRepository::Locator::activate_server_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::activate_server, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::activate_server}, - {"remove_server_in_activator", &POA_ImplementationRepository::Locator::remove_server_in_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::remove_server_in_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::remove_server_in_activator}, - {"",0,0,0}, - {"shutdown_repo", &POA_ImplementationRepository::Locator::shutdown_repo_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::shutdown_repo, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::shutdown_repo}, - {"",0,0,0}, - {"unregister_activator", &POA_ImplementationRepository::Locator::unregister_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::unregister_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::unregister_activator}, - {"",0,0,0}, - {"find_in_activator", &POA_ImplementationRepository::Locator::find_in_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::find_in_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::find_in_activator}, - {"shutdown_server_in_activator", &POA_ImplementationRepository::Locator::shutdown_server_in_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::shutdown_server_in_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::shutdown_server_in_activator}, - {"",0,0,0}, - {"server_is_running_in_activator", &POA_ImplementationRepository::Locator::server_is_running_in_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_running_in_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_running_in_activator}, - {"",0,0,0},{"",0,0,0}, - {"activate_server_in_activator", &POA_ImplementationRepository::Locator::activate_server_in_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::activate_server_in_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::activate_server_in_activator}, - {"",0,0,0}, - {"_is_a", &POA_ImplementationRepository::Locator::_is_a_skel, 0, 0}, - {"server_is_shutting_down_in_activator", &POA_ImplementationRepository::Locator::server_is_shutting_down_in_activator_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_shutting_down_in_activator, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_shutting_down_in_activator}, - {"",0,0,0}, - {"server_is_shutting_down", &POA_ImplementationRepository::Locator::server_is_shutting_down_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_shutting_down, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_shutting_down}, - {"",0,0,0}, - {"_component", &POA_ImplementationRepository::Locator::_component_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"_non_existent", &POA_ImplementationRepository::Locator::_non_existent_skel, 0, 0}, - {"",0,0,0}, - {"_interface", &POA_ImplementationRepository::Locator::_interface_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"activate_server_with_startup", &POA_ImplementationRepository::Locator::activate_server_with_startup_skel, &POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::activate_server_with_startup, &POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::activate_server_with_startup}, - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) - { - const char *s = wordlist[key].opname_; - - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) - return &wordlist[key]; - } - } - return 0; -} - -static TAO_ImplementationRepository_Locator_Perfect_Hash_OpTable tao_ImplementationRepository_Locator_optable; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interceptors_ss.cpp:53 - -#if (TAO_HAS_INTERCEPTORS == 1) - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * server_; - const char * activator_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - activator_ (activator) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Locator_activate_server_in_activator_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound, - ImplementationRepository::_tc_CannotActivate - }; - - exception_list->length (2); - for (CORBA::ULong i = 0; i < 2; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Locator_activate_server_in_activator_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * server_; - const char * activator_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - activator_ (activator) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Locator_remove_server_in_activator_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Locator_remove_server_in_activator_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * server_; - const char * activator_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - activator_ (activator) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Locator_shutdown_server_in_activator_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Locator_shutdown_server_in_activator_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * server_; - const char * activator_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - activator_ (activator) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Locator_server_is_shutting_down_in_activator_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Locator_server_is_shutting_down_in_activator_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * activator, - ::ImplementationRepository::Administration_ptr admin, - const ::ImplementationRepository::Locator::ServerNameList & servers - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void result (CORBA::Long result); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * activator_; - ::ImplementationRepository::Administration_ptr admin_; - const ::ImplementationRepository::Locator::ServerNameList & servers_; - CORBA::Long _result; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * activator, - ::ImplementationRepository::Administration_ptr admin, - const ::ImplementationRepository::Locator::ServerNameList & servers - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - activator_ (activator), - admin_ (admin), - servers_ (servers) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (3); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= this->admin_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= this->servers_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 0; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Any_var safe_result_any = result_any; - - (*result_any) <<= this->_result; - - return safe_result_any._retn (); -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -void -TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator::result (CORBA::Long result) -{ - // Update the result. - this->_result = result; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * activator, - const ::CORBA::Long & token - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * activator_; - const ::CORBA::Long & token_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * activator, - const ::CORBA::Long & token - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - activator_ (activator), - token_ (token) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= token_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * server_; - const char * activator_; - const char * addr_; - ::ImplementationRepository::ServerObject_ptr server_object_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - activator_ (activator), - addr_ (addr), - server_object_ (server_object) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (4); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= addr_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= this->server_object_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Locator_server_is_running_in_activator_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Locator_server_is_running_in_activator_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator & - ); - -private: - POA_ImplementationRepository::Locator *_tao_impl; - - const char * server_; - const char * activator_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator::TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Locator *tao_impl, - const char * server, - const char * activator - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - activator_ (activator) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= activator_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Locator_find_in_activator_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Locator_find_in_activator_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -#endif /* TAO_HAS_INTERCEPTORS */ - -/////////////////////////////////////////////////////////////////////// -// Strategized Proxy Broker Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/strategized_proxy_broker_ss.cpp:40 - -// Factory function Implementation. -POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker * -POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker::the_TAO_Locator_Strategized_Proxy_Broker (void) -{ - static POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker - strategized_proxy_broker; - - return &strategized_proxy_broker; -} - -POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker::_TAO_Locator_Strategized_Proxy_Broker (void) -{ -} - -POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker::~_TAO_Locator_Strategized_Proxy_Broker (void) -{ -} - -TAO::Collocation_Strategy -POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker::get_strategy ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - TAO::Collocation_Strategy strategy = - TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); - - return strategy; -} - -void -POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker::dispatch ( - CORBA::Object_ptr obj, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::Exception)) -{ - TAO_Object_Adapter::Servant_Upcall servant_upcall ( - obj->_stubobj ()->servant_orb_var ()->orb_core () - ); - - TAO_Collocated_Skeleton collocated_skel; - TAO_Abstract_ServantBase *servant = 0; - - if (strategy == TAO::TAO_CS_THRU_POA_STRATEGY) - { - servant_upcall.prepare_for_upcall ( - obj->_stubobj ()->object_key (), - op, - forward_obj - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - servant_upcall.pre_invoke_collocated_request ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; - - servant = servant_upcall.servant (); - } - else - { - servant = obj->_servant (); - } - - int status = servant->_find (op, - collocated_skel, - strategy, - op_len); - - if (status == -1) - { - ACE_THROW (CORBA::BAD_OPERATION ()); - } - - ACE_TRY - { - collocated_skel (servant, - args, - num_args - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } -#if (TAO_HAS_MINIMUM_CORBA == 0) - ACE_CATCH (PortableServer::ForwardRequest, forward_request) - { - forward_obj = - CORBA::Object::_duplicate (forward_request.forward_reference.in ()); - return; - } -#else - ACE_CATCHANY - { - ACE_UNUSED_ARG (forward_obj); - ACE_RE_THROW; - } -#endif /* TAO_HAS_MINIMUM_CORBA */ - ACE_ENDTRY; - ACE_CHECK; -} - -// -// End Strategized Proxy Broker Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:648 - -TAO::Collocation_Proxy_Broker * -ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function (CORBA::Object_ptr) -{ - return - ::POA_ImplementationRepository::_TAO_Locator_Strategized_Proxy_Broker::the_TAO_Locator_Strategized_Proxy_Broker (); -} - -int -ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_Initializer (size_t) -{ - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer = - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function; - - return 0; -} - -static int -ImplementationRepository__TAO_Locator_Proxy_Broker_Stub_Factory_Initializer_Scarecrow = - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_Initializer ( - reinterpret_cast< - size_t> ( - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_Initializer - ) - ); - - -/////////////////////////////////////////////////////////////////////// -// ThruPOA Proxy Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_ss.cpp:37 - -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::_TAO_Locator_ThruPOA_Proxy_Impl (void) -{} - -// ThruPOA Implementation of the IDL interface methods - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::activate_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->activate_server_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::remove_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->remove_server_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::shutdown_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->shutdown_server_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_shutting_down_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->server_is_shutting_down_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::register_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ((TAO::Arg_Traits< CORBA::Long>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->register_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Administration>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Locator::ServerNameList>::in_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::unregister_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->unregister_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< CORBA::Long>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_running_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->server_is_running_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Address>::in_arg_val *) args[3])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerObject>::in_arg_val *) args[4])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::find_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->find_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformation>::out_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End ThruPOA Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////// -// Direct Proxy Implementation -// - -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::_TAO_Locator_Direct_Proxy_Impl (void) -{} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::activate_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->activate_server_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::remove_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->remove_server_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::shutdown_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->shutdown_server_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_shutting_down_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->server_is_shutting_down_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::register_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ((TAO::Arg_Traits< CORBA::Long>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->register_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Administration>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Locator::ServerNameList>::in_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::unregister_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->unregister_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< CORBA::Long>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_running_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->server_is_running_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Address>::in_arg_val *) args[3])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerObject>::in_arg_val *) args[4])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::find_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Locator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Locator:1.0" - ) - )->find_in_activator ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformation>::out_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End Direct Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:97 - -POA_ImplementationRepository::Locator::Locator (void) -{ - this->optable_ = &tao_ImplementationRepository_Locator_optable; -} - -POA_ImplementationRepository::Locator::Locator (const Locator& rhs) - : TAO_Abstract_ServantBase (rhs), - TAO_ServantBase (rhs), - ACE_NESTED_CLASS (POA_ImplementationRepository, Administration) (rhs) -{ -} - -POA_ImplementationRepository::Locator::~Locator (void) -{ -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::activate_server_in_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::CORBA::String_var activator; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> activator.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_activate_server_in_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->activate_server_in_activator ( - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::remove_server_in_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::CORBA::String_var activator; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> activator.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_remove_server_in_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->remove_server_in_activator ( - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::shutdown_server_in_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::CORBA::String_var activator; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> activator.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_shutdown_server_in_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->shutdown_server_in_activator ( - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::server_is_shutting_down_in_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::CORBA::String_var activator; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> activator.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_shutting_down_in_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->server_is_shutting_down_in_activator ( - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::register_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - CORBA::Long _tao_retval = 0; - ::CORBA::String_var activator; - ::ImplementationRepository::Administration_var admin; - ::ImplementationRepository::Locator::ServerNameList servers; - - if (!( - (_tao_in >> activator.out ()) && - (_tao_in >> admin.out ()) && - (_tao_in >> servers) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_register_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - activator.in (), - - admin.in (), - - servers - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - _tao_retval = - _tao_impl->register_activator ( - activator.in (), - - admin.in (), - - servers - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - CORBA::Long _tao_retval_info = _tao_retval; - _tao_ri.result (_tao_retval_info); - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << _tao_retval) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::unregister_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var activator; - ::CORBA::Long token; - - if (!( - (_tao_in >> activator.out ()) && - (_tao_in >> token) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_unregister_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - activator.in (), - - token - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->unregister_activator ( - activator.in (), - - token - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::server_is_running_in_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::CORBA::String_var activator; - ::CORBA::String_var addr; - ::ImplementationRepository::ServerObject_var server_object; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> activator.out ()) && - (_tao_in >> addr.out ()) && - (_tao_in >> server_object.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_server_is_running_in_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - activator.in (), - - addr.in (), - - server_object.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->server_is_running_in_activator ( - server.in (), - - activator.in (), - - addr.in (), - - server_object.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Locator::find_in_activator_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Locator *_tao_impl = - static_cast< - POA_ImplementationRepository::Locator *> ( - _tao_servant - ); - - ::CORBA::String_var server; - ::CORBA::String_var activator; - ::ImplementationRepository::ServerInformation_var info; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> activator.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Locator_find_in_activator _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - activator.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->find_in_activator ( - server.in (), - - activator.in (), - - info.out () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << info.in ()) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:162 - -void POA_ImplementationRepository::Locator::_is_a_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); - - POA_ImplementationRepository::Locator *_tao_impl = - (POA_ImplementationRepository::Locator *) _tao_servant; - - CORBA::Boolean _tao_retval = 0; - CORBA::String_var value; - - if (!(_tao_in >> value.out ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } - - _tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::Locator::_non_existent_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Locator *_tao_impl = - (POA_ImplementationRepository::Locator *) _tao_servant; - - CORBA::Boolean _tao_retval = - _tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::Locator::_interface_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_IFR_Client_Adapter *_tao_adapter = - ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( - TAO_ORB_Core::ifr_client_adapter_name () - ); - - if (_tao_adapter == 0) - { - ACE_THROW (CORBA::INTF_REPOS ()); - } - - POA_ImplementationRepository::Locator *_tao_impl = - (POA_ImplementationRepository::Locator *) _tao_servant; - - CORBA::InterfaceDef_ptr _tao_retval = - _tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - CORBA::Boolean _tao_result = - _tao_adapter->interfacedef_cdr_insert ( - _tao_out, - _tao_retval - ); - - _tao_adapter->dispose (_tao_retval); - - if (_tao_result == 0) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::Locator::_component_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_object_reference, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Locator *_tao_impl = - (POA_ImplementationRepository::Locator *) _tao_object_reference; - - CORBA::Object_var _tao_retval = - _tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << _tao_retval.in ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -CORBA::Boolean POA_ImplementationRepository::Locator::_is_a ( - const char* value - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/Administration:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/Locator:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; - } - else - { - return 0; - } -} - -void* POA_ImplementationRepository::Locator::_downcast ( - const char* logical_type_id - ) -{ - if (ACE_OS::strcmp (logical_type_id, - "IDL:ImplementationRepository/Administration:1.0") == 0) - { - return static_cast<POA_ImplementationRepository::Administration_ptr> (this); - } - - if (ACE_OS::strcmp (logical_type_id, - "IDL:ImplementationRepository/Locator:1.0") == 0) - { - return static_cast<POA_ImplementationRepository::Locator_ptr> (this); - } - - if (ACE_OS::strcmp (logical_type_id, - "IDL:omg.org/CORBA/Object:1.0") == 0) - { - return static_cast<PortableServer::Servant> (this); - } - - return 0; -} - -const char* POA_ImplementationRepository::Locator::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/Locator:1.0"; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:584 - -void POA_ImplementationRepository::Locator::_dispatch ( - TAO_ServerRequest &req, - void *servant_upcall - ACE_ENV_ARG_DECL - ) -{ - this->synchronous_upcall_dispatch (req, - servant_upcall, - this - ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:526 - -ImplementationRepository::Locator * -POA_ImplementationRepository::Locator::_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 (); - - if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ()) - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 1, this), - 0 - ); - } - else - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 0, this), - 0 - ); - } - - CORBA::Object_var obj = tmp; - (void) safe_stub.release (); - - typedef ::ImplementationRepository::Locator STUB_SCOPED_NAME; - return - TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow ( - obj.in (), - ImplementationRepository__TAO_Locator_Proxy_Broker_Factory_function_pointer - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:1680 - -#if 0 -/* Useful at a later date. -At present will be commented out */ - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerObject>; - - template class - TAO::Object_SArg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::StartupOptions>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerInformation>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SEQUENCE__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SEQUENCE__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerInformationList>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerInformationIterator>; - - template class - TAO::Object_SArg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::Administration>; - - template class - TAO::Object_SArg_Traits_T< - ImplementationRepository::Administration_ptr, - ImplementationRepository::Administration_var, - ImplementationRepository::Administration_out, - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::Locator::ServerNameList>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::Locator::ServerNameList, - ImplementationRepository::Locator::ServerNameList_var, - ImplementationRepository::Locator::ServerNameList_out - >; - -#endif /* end #if !defined */ - - template class - TAO::In_Object_SArgument_T< - ImplementationRepository::Administration_ptr - >; - - template class - TAO::In_Var_Size_SArgument_T< - ImplementationRepository::Locator::ServerNameList - >; - - template class - TAO::In_Object_SArgument_T< - ImplementationRepository::ServerObject_ptr - >; - - template class - TAO::Out_Var_Size_SArgument_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_out - >; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerObject> - -# pragma instantiate \ - TAO::Object_SArg_Traits_T< \ - ImplementationRepository::ServerObject_ptr, \ - ImplementationRepository::ServerObject_var, \ - ImplementationRepository::ServerObject_out, \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::StartupOptions> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::StartupOptions, \ - ImplementationRepository::StartupOptions_var, \ - ImplementationRepository::StartupOptions_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerInformation> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_var, \ - ImplementationRepository::ServerInformation_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SEQUENCE__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SEQUENCE__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerInformationList> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_var, \ - ImplementationRepository::ServerInformationList_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerInformationIterator> - -# pragma instantiate \ - TAO::Object_SArg_Traits_T< \ - ImplementationRepository::ServerInformationIterator_ptr, \ - ImplementationRepository::ServerInformationIterator_var, \ - ImplementationRepository::ServerInformationIterator_out, \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::Administration> - -# pragma instantiate \ - TAO::Object_SArg_Traits_T< \ - ImplementationRepository::Administration_ptr, \ - ImplementationRepository::Administration_var, \ - ImplementationRepository::Administration_out, \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_LOCATOR_SERVERNAMELIST__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::Locator::ServerNameList> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::Locator::ServerNameList, \ - ImplementationRepository::Locator::ServerNameList_var, \ - ImplementationRepository::Locator::ServerNameList_out \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO::In_Object_SArgument_T< \ - ImplementationRepository::Administration_ptr \ - > - -# pragma instantiate \ - TAO::In_Var_Size_SArgument_T< \ - ImplementationRepository::Locator::ServerNameList \ - > - -# pragma instantiate \ - TAO::In_Object_SArgument_T< \ - ImplementationRepository::ServerObject_ptr \ - > - -# pragma instantiate \ - TAO::Out_Var_Size_SArgument_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_out \ - > - -#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ -#endif /*if 0*/ - - -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/ImR_LocatorS.h b/TAO/tao/PortableServer/ImR_LocatorS.h deleted file mode 100644 index 95551511324..00000000000 --- a/TAO/tao/PortableServer/ImR_LocatorS.h +++ /dev/null @@ -1,1145 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:409 - -#ifndef _TAO_IDL_IMR_LOCATORS_H_ -#define _TAO_IDL_IMR_LOCATORS_H_ - -#include /**/ "ace/pre.h" - -#include "ImplRepoS.h" -#include "ImR_LocatorC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Collocation_Proxy_Broker.h" -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Base.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option push -w-rvl -w-rch -w-ccc -w-inl -#endif /* __BORLANDC__ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_sh.cpp:49 - -namespace POA_ImplementationRepository -{ - - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_sh.cpp:90 - - class Locator; - typedef Locator *Locator_ptr; - - class _TAO_Locator_ThruPOA_Proxy_Impl; - class _TAO_Locator_Direct_Proxy_Impl; - class _TAO_Locator_Strategized_Proxy_Broker; - - class TAO_PortableServer_Export Locator - : public virtual POA_ImplementationRepository::Administration - { - protected: - Locator (void); - - public: - // Useful for template programming. - typedef ::ImplementationRepository::Locator _stub_type; - typedef ::ImplementationRepository::Locator_ptr _stub_ptr_type; - typedef ::ImplementationRepository::Locator_var _stub_var_type; - - Locator (const Locator& rhs); - virtual ~Locator (void); - - virtual CORBA::Boolean _is_a ( - const char* logical_type_id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual void* _downcast ( - const char* logical_type_id - ); - - static void _is_a_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _non_existent_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _interface_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _component_skel ( - TAO_ServerRequest &req, - void *obj, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - virtual void _dispatch ( - TAO_ServerRequest &req, - void *_servant_upcall - ACE_ENV_ARG_DECL - ); - - ::ImplementationRepository::Locator *_this ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - virtual const char* _interface_repository_id (void) const; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void activate_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) = 0; - - static void activate_server_in_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void remove_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void remove_server_in_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void shutdown_server_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void shutdown_server_in_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void server_is_shutting_down_in_activator ( - const char * server, - const char * activator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void server_is_shutting_down_in_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual CORBA::Long register_activator ( - const char * activator, - ::ImplementationRepository::Administration_ptr admin, - const ::ImplementationRepository::Locator::ServerNameList & servers - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void register_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void unregister_activator ( - const char * activator, - ::CORBA::Long token - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void unregister_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void server_is_running_in_activator ( - const char * server, - const char * activator, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void server_is_running_in_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void find_in_activator ( - const char * server, - const char * activator, - ::ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void find_in_activator_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - activate_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - activate_server_with_startup_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - register_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - reregister_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - remove_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - shutdown_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - server_is_running_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - server_is_shutting_down_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - find_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - list_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - shutdown_repo_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - - static void - find_ior_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - }; - - /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - - class TAO_PortableServer_Export _TAO_Locator_Strategized_Proxy_Broker - : public virtual TAO::Collocation_Proxy_Broker - { - public: - _TAO_Locator_Strategized_Proxy_Broker (void); - - virtual ~_TAO_Locator_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, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::Exception)); - - static _TAO_Locator_Strategized_Proxy_Broker * - the_TAO_Locator_Strategized_Proxy_Broker (void); - }; - - // - // End Strategized Proxy Broker Declaration - /////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////// - // ThruPOA Proxy Impl. Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_sh.cpp:37 - - class TAO_PortableServer_Export _TAO_Locator_ThruPOA_Proxy_Impl - : public virtual ::POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl - { - public: - _TAO_Locator_ThruPOA_Proxy_Impl (void); - - virtual ~_TAO_Locator_ThruPOA_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - activate_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - remove_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_shutting_down_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - register_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - unregister_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_running_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - find_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - }; - - // - // ThruPOA Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - - /////////////////////////////////////////////////////////////////////// - // Direct Impl. Declaration - // - - class TAO_PortableServer_Export _TAO_Locator_Direct_Proxy_Impl - : public virtual ::POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl - { - public: - _TAO_Locator_Direct_Proxy_Impl (void); - - virtual ~_TAO_Locator_Direct_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - activate_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - remove_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown_server_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_shutting_down_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - register_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - unregister_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_running_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - find_in_activator ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2214 - - static void - find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - }; - - // - // Direct Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_sh.cpp:80 - -} // module ImplementationRepository - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:1012 - - -#if defined (__ACE_INLINE__) -#include "ImR_LocatorS.inl" -#endif /* defined INLINE */ - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option pop -#endif /* __BORLANDC__ */ - -#include /**/ "ace/post.h" -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/ImR_LocatorS.inl b/TAO/tao/PortableServer/ImR_LocatorS.inl deleted file mode 100644 index 3c6b37372ed..00000000000 --- a/TAO/tao/PortableServer/ImR_LocatorS.inl +++ /dev/null @@ -1,858 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::activate_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::activate_server_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::activate_server_with_startup_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::activate_server_with_startup_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::register_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::register_server_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::reregister_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::reregister_server_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::remove_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::remove_server_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::shutdown_server_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::shutdown_server_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::server_is_running_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::server_is_running_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::server_is_shutting_down_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::server_is_shutting_down_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::find_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::find_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::list_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::list_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::shutdown_repo_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::shutdown_repo_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:2026 - -ACE_INLINE -void -POA_ImplementationRepository::Locator::find_ior_skel ( - TAO_ServerRequest &req, - void *obj, - void *context - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration_ptr impl = (POA_ImplementationRepository::Locator_ptr) obj; - POA_ImplementationRepository::Administration::find_ior_skel ( - req, - (POA_ImplementationRepository::Administration_ptr) impl, - context - ACE_ENV_ARG_PARAMETER - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server_with_startup ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server_with_startup ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::register_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::register_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::reregister_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::reregister_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::remove_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::remove_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_server ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_running ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_running ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_shutting_down ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_shutting_down ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::list ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_repo ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_repo ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_ThruPOA_Proxy_Impl::find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find_ior ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1334 - -ACE_INLINE void -POA_ImplementationRepository::_TAO_Locator_Direct_Proxy_Impl::find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find_ior ( - servant, - args, - num_args - ACE_ENV_ARG_PARAMETER - ); -} diff --git a/TAO/tao/PortableServer/ImplRepo.idl b/TAO/tao/PortableServer/ImplRepo.idl new file mode 100644 index 00000000000..b76f6a5a010 --- /dev/null +++ b/TAO/tao/PortableServer/ImplRepo.idl @@ -0,0 +1,190 @@ +// -*- IDL -*- + +// $Id$ + +module ImplementationRepository +{ + // = TITLE + // Server Side IR Object + // + // = DESCRIPTION + // This object, which exists on the servers that use the + // Implementation Repository (IR), is used to control or check the + // status of the server by the IR. + interface ServerObject + { + // Check the liveness of a server. + void ping (); + + // Try to shutdown the server gracefully. + void shutdown (); + }; + + // = Exceptions + + // Object already bound in the Implementation Repository + exception AlreadyRegistered {}; + + // The server could not be restarted. + exception CannotActivate + { + string reason; + }; + + // Object not found in the Implementation Repository + exception NotFound {}; + + // One environment variable/value pair. + struct EnvironmentVariable + { + string name; + string value; + }; + + // Complete Environment. + typedef sequence<EnvironmentVariable> EnvironmentList; + + // The type of Activation + enum ActivationMode {NORMAL, MANUAL, PER_CLIENT, AUTO_START}; + + /// Options used to start up the server. + struct StartupOptions + { + /// Startup command (program name and arguments). + string command_line; + + /// Environment Variables. + EnvironmentList environment; + + /// Working directory. + string working_directory; + + /// Activation Mode + ActivationMode activation; + + /// Name of the activator + string activator; + + /// Number of retries allowed + long start_limit; + }; + + struct ServerInformation + { + /// Server name. + string server; + + /// How to start up the server. + StartupOptions startup; + + /// This is used in places that require a partial IOR with + /// just the ObjectKey missing. + string partial_ior; + }; + + typedef sequence <ServerInformation> ServerInformationList; + + // = TITLE + // Interface for iterating over servers returned with + // Administration::list (). + interface ServerInformationIterator + { + // This operation returns at most the requested number of + // servers. + // If how_many == 0, then returns all servers + boolean next_n (in unsigned long how_many, + out ServerInformationList servers); + + // This operation destroys the iterator. + void destroy (); + }; + + // = TITLE + // The Implementation Repository Administration Interface + // + // = DESCRIPTION + // This interface exports all the administration functionality of + // the Implementation Repository. + interface Administration + { + // Activate server that is named <server>. + // + // The <NotFound> exception is raised when <server> is not found + // in the Implementation Repository. The <CannotActivate> exception + // is raised when <server> is found in the Repository but could not be + // activated. + 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. + // 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); + + // Remove <server> from the Implementation Repository. + // + // The <NotFound> exception is raised when <server> is not found + // in the Implementation Repository. + void remove_server (in string server) + raises (NotFound); + + // Tries to shutdown the server, first gracefully, then ungracefully. + // + // The <NotFound> exception is raised when <server> is not found + // in the Implementation Repository. + void shutdown_server (in string server) + raises (NotFound); + + // Used to notify the Implementation Repository that <server> is alive + // and well at <partial_ior>. + // + // The <NotFound> exception is raised when <server> is not found + // in the Implementation Repository. + void server_is_running (in string server, + in string partial_ior, + in ServerObject server_object) + raises (NotFound); + + // Used to tell the Implementation Repository that <server> is shutting + // down. + // + // The <NotFound> exception is raised when <server> is not found + // in the Implementation Repository. + + void server_is_shutting_down (in string server) + 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); + + // Returns at most <how_many> servers in <server_list>. If there + // are additional servers, they can be received through the + // <server_iterator>. If there are no more servers, then + // <server_iterator> is null. + // If how_many == 0, then returns all servers. + void list (in unsigned long how_many, + out ServerInformationList server_list, + out ServerInformationIterator server_iterator); + }; +}; diff --git a/TAO/tao/PortableServer/ImplRepo.pidl b/TAO/tao/PortableServer/ImplRepo.pidl deleted file mode 100644 index cbeb5fc3708..00000000000 --- a/TAO/tao/PortableServer/ImplRepo.pidl +++ /dev/null @@ -1,218 +0,0 @@ -// -*- IDL -*- - -//============================================================================= -/** - * @file ImplRepo.pidl - * - * $Id$ - * - * This file was used to generate the code in ImplRepo{C,S,S_T}.{h,i,cpp} - * - * The command used to generate code from this file is: - * - * tao_idl.exe -o orig -ci C.i -si S.i -st S_T.i -Gp -Gd -Ge 1 -Sc -GT -Wb,export_macro=TAO_PortableServer_Export -Wb,export_include=portableserver_export.h -Wb,pre_include="ace/pre.h" -Wb,post_include="ace/post.h" ImplRepo.pidl - * - */ -//============================================================================= - -module ImplementationRepository -{ - /** - * @brief Server Side IR Object - * - * This object, which exists on the servers that use the - * Implementation Repository (IR), is used to control or check the - * status of the server by the IR. - */ - interface ServerObject - { - /// Check the liveness of a server. - void ping (); - - /// Try to shutdown the server gracefully. - void shutdown (); - }; - - // = Exceptions - - /// Object already bound in the Implementation Repository - exception AlreadyRegistered {}; - - /// The server could not be restarted. - exception CannotActivate - { - string reason; - }; - - /// Object not found in the Implementation Repository - exception NotFound {}; - - /// One environment variable/value pair. - struct EnvironmentVariable - { - string name; - string value; - }; - - /// This is used in places that require a partial IOR with - /// just the ObjectKey missing. - typedef string Address; - - /// Complete Environment. - typedef sequence<EnvironmentVariable> EnvironmentList; - - /// The type of Activation - enum ActivationMode {NORMAL, MANUAL, PER_CLIENT, AUTO_START}; - - /// Options used to start up the server. - struct StartupOptions - { - /// Startup command (program name and arguments). - string command_line; - - /// Environment Variables. - EnvironmentList environment; - - /// Working directory. - string working_directory; - - /// Activation Mode - ActivationMode activation; - - /// Name of the activator - string activator; - }; - - /// All the information about one server. - struct ServerInformation - { - /// The logical server this server is part of. - string logical_server; - - /// Server name. - string server; - - /// How to start up the server. - StartupOptions startup; - - /// Where the server is located currently. - Address location; - }; - - typedef sequence <ServerInformation> ServerInformationList; - - /// Forward declaration. - interface ServerInformationIterator; - - /** - * @brief The Implementation Repository Administration Interface - * - * This interface exports all the administration functionality of - * the Implementation Repository. - */ - interface Administration - { - /// Activate server that is named @a server. - /// - /// The <NotFound> exception is raised when <server> is not found - /// in the Implementation Repository. The <CannotActivate> exception - /// is raised when <server> is found in the Repository but could not be - /// activated. - void activate_server (in string server) - raises (NotFound, CannotActivate); - - string activate_server_with_startup (in string server, - in long check_startup) - 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. - /// 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); - - /// Remove <server> from the Implementation Repository. - /// - /// The <NotFound> exception is raised when <server> is not found - /// in the Implementation Repository. - void remove_server (in string server) - raises (NotFound); - - /// Tries to shutdown the server, first gracefully, then ungracefully. - /// - /// The <NotFound> exception is raised when <server> is not found - /// in the Implementation Repository. - void shutdown_server (in string server) - raises (NotFound); - - /// Used to notify the Implementation Repository that <server> is alive - /// and well at <addr>. - /// - /// The <NotFound> exception is raised when <server> is not found - /// in the Implementation Repository. - void server_is_running (in string server, - in Address addr, - in ServerObject server_object) - raises (NotFound); - - /// Used to tell the Implementation Repository that <server> is shutting - /// down. - /// - /// The <NotFound> exception is raised when <server> is not found - /// in the Implementation Repository. - void server_is_shutting_down (in string server) - 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); - - /// Returns at most <how_many> servers in <server_list>. If there - /// are additional servers, they can be received through the - /// <server_iterator>. If there are no more servers, then - /// <server_iterator> is null. - void list (in unsigned long how_many, - out ServerInformationList server_list, - out ServerInformationIterator server_iterator); - - /// Shuts down the repository - void shutdown_repo() ; - - string find_ior (in string object_name) - raises (NotFound); - - }; - - /// Interface for iterating over servers returned with - /// Administration::list (). - interface ServerInformationIterator - { - /// This operation returns at most the requested number of - /// servers. - boolean next_n (in unsigned long how_many, - out ServerInformationList server_list); - - /// This operation destroys the iterator. - void destroy (); - }; -}; diff --git a/TAO/tao/PortableServer/ImplRepoC.cpp b/TAO/tao/PortableServer/ImplRepoC.cpp deleted file mode 100644 index 143506a5db1..00000000000 --- a/TAO/tao/PortableServer/ImplRepoC.cpp +++ /dev/null @@ -1,5004 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:321 - - -#include "ImplRepoC.h" -#include "tao/CDR.h" -#include "tao/Exception_Data.h" -#include "tao/Invocation_Adapter.h" -#include "tao/Object_T.h" -#include "tao/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" -#include "tao/UB_String_Arguments.h" -#include "tao/Var_Size_Argument_T.h" -#include "ace/OS_NS_string.h" - -#if defined (__BORLANDC__) -#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig -#endif /* __BORLANDC__ */ - -#if !defined (__ACE_INLINE__) -#include "ImplRepoC.inl" -#endif /* !defined INLINE */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:64 - -// Arg traits specializations. -namespace TAO -{ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerObject> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - TAO::Objref_Traits<ImplementationRepository::ServerObject> - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::StartupOptions> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformation> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:379 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationList> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - > - { - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_CS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationIterator> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> - > - { - }; - -#endif /* end #if !defined */ -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for ImplementationRepository::ServerObject. - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::ServerObject_ptr -TAO::Objref_Traits<ImplementationRepository::ServerObject>::duplicate ( - ImplementationRepository::ServerObject_ptr p - ) -{ - return ImplementationRepository::ServerObject::_duplicate (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -void -TAO::Objref_Traits<ImplementationRepository::ServerObject>::release ( - ImplementationRepository::ServerObject_ptr p - ) -{ - CORBA::release (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::ServerObject_ptr -TAO::Objref_Traits<ImplementationRepository::ServerObject>::nil (void) -{ - return ImplementationRepository::ServerObject::_nil (); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -CORBA::Boolean -TAO::Objref_Traits<ImplementationRepository::ServerObject>::marshal ( - ImplementationRepository::ServerObject_ptr p, - TAO_OutputCDR & cdr - ) -{ - return CORBA::Object::marshal (p, cdr); -} - -// Function pointer for collocation factory initialization. -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ) = 0; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::ServerObject::ping ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_ServerObject_Proxy_Broker_ == 0) - { - ImplementationRepository_ServerObject_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, - 1, - "ping", - 4, - this->the_TAO_ServerObject_Proxy_Broker_ - ); - - _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::ServerObject::shutdown ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (!this->is_evaluated ()) - { - ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this); - } - - if (this->the_TAO_ServerObject_Proxy_Broker_ == 0) - { - ImplementationRepository_ServerObject_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, - 1, - "shutdown", - 8, - this->the_TAO_ServerObject_Proxy_Broker_ - ); - - _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -ImplementationRepository::ServerObject::ServerObject (void) - : the_TAO_ServerObject_Proxy_Broker_ (0) -{ - this->ImplementationRepository_ServerObject_setup_collocation (); -} - -void -ImplementationRepository::ServerObject::ImplementationRepository_ServerObject_setup_collocation () -{ - if (::ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer) - { - this->the_TAO_ServerObject_Proxy_Broker_ = - ::ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer (this); - } -} - -ImplementationRepository::ServerObject::~ServerObject (void) -{} - -void -ImplementationRepository::ServerObject::_tao_any_destructor (void *_tao_void_pointer) -{ - ServerObject *_tao_tmp_pointer = - static_cast<ServerObject *> (_tao_void_pointer); - CORBA::release (_tao_tmp_pointer); -} - -ImplementationRepository::ServerObject_ptr -ImplementationRepository::ServerObject::_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<ServerObject>::narrow ( - _tao_objref, - "IDL:ImplementationRepository/ServerObject:1.0", - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::ServerObject_ptr -ImplementationRepository::ServerObject::_unchecked_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<ServerObject>::unchecked_narrow ( - _tao_objref, - "IDL:ImplementationRepository/ServerObject:1.0", - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::ServerObject_ptr -ImplementationRepository::ServerObject::_duplicate (ServerObject_ptr obj) -{ - if (! CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -CORBA::Boolean -ImplementationRepository::ServerObject::_is_a ( - const char *value - ACE_ENV_ARG_DECL - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/ServerObject:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; // success using local knowledge - } - else - { - return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ( - value - ACE_ENV_ARG_PARAMETER - ); - } -} - -const char* ImplementationRepository::ServerObject::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/ServerObject:1.0"; -} - -CORBA::Boolean -ImplementationRepository::ServerObject::marshal (TAO_OutputCDR &cdr) -{ - return (cdr << this); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_ServerObject[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 46, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f536572), - ACE_NTOHL (0x7665724f), - ACE_NTOHL (0x626a6563), - ACE_NTOHL (0x743a312e), - ACE_NTOHL (0x30000000), // repository ID = IDL:ImplementationRepository/ServerObject:1.0 - 13, - ACE_NTOHL (0x53657276), - ACE_NTOHL (0x65724f62), - ACE_NTOHL (0x6a656374), - ACE_NTOHL (0x0), // name = ServerObject - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_ServerObject ( - CORBA::tk_objref, - sizeof (_oc_ImplementationRepository_ServerObject), - (char *) &_oc_ImplementationRepository_ServerObject, - 0, - sizeof (ImplementationRepository::ServerObject) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_ServerObject = - &_tc_TAO_tc_ImplementationRepository_ServerObject; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_cs.cpp:63 - -ImplementationRepository::AlreadyRegistered::AlreadyRegistered (void) - : CORBA::UserException ( - "IDL:ImplementationRepository/AlreadyRegistered:1.0", - "AlreadyRegistered" - ) -{ -} - -ImplementationRepository::AlreadyRegistered::~AlreadyRegistered (void) -{ -} - -ImplementationRepository::AlreadyRegistered::AlreadyRegistered (const ::ImplementationRepository::AlreadyRegistered &_tao_excp) - : CORBA::UserException ( - _tao_excp._rep_id (), - _tao_excp._name () - ) -{ -} - -ImplementationRepository::AlreadyRegistered& -ImplementationRepository::AlreadyRegistered::operator= (const ::ImplementationRepository::AlreadyRegistered &_tao_excp) -{ - this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp); - return *this; -} - -void ImplementationRepository::AlreadyRegistered::_tao_any_destructor (void *_tao_void_pointer) -{ - AlreadyRegistered *_tao_tmp_pointer = - static_cast<AlreadyRegistered*> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -ImplementationRepository::AlreadyRegistered * -ImplementationRepository::AlreadyRegistered::_downcast (CORBA::Exception *_tao_excp) -{ - if (!ACE_OS::strcmp ("IDL:ImplementationRepository/AlreadyRegistered:1.0", _tao_excp->_rep_id ())) - { - return dynamic_cast<AlreadyRegistered *> (_tao_excp); - } - else - { - return 0; - } -} - -CORBA::Exception *ImplementationRepository::AlreadyRegistered::_alloc (void) -{ - CORBA::Exception *retval = 0; - ACE_NEW_RETURN (retval, ::ImplementationRepository::AlreadyRegistered, 0); - return retval; -} - -CORBA::Exception * -ImplementationRepository::AlreadyRegistered::_tao_duplicate (void) const -{ - CORBA::Exception *result; - ACE_NEW_RETURN ( - result, - ::ImplementationRepository::AlreadyRegistered (*this), - 0 - ); - return result; -} - -void ImplementationRepository::AlreadyRegistered::_raise (void) const -{ - TAO_RAISE (*this); -} - -void ImplementationRepository::AlreadyRegistered::_tao_encode ( - TAO_OutputCDR &cdr - ACE_ENV_ARG_DECL - ) const -{ - if (cdr << *this) - { - return; - } - - ACE_THROW (CORBA::MARSHAL ()); -} - -void ImplementationRepository::AlreadyRegistered::_tao_decode ( - TAO_InputCDR &cdr - ACE_ENV_ARG_DECL - ) -{ - if (cdr >> *this) - { - return; - } - - ACE_THROW (CORBA::MARSHAL ()); -} - -// TAO extension - the virtual _type method. -CORBA::TypeCode_ptr ImplementationRepository::AlreadyRegistered::_type (void) const -{ - return ::ImplementationRepository::_tc_AlreadyRegistered; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_AlreadyRegistered[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 51, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416c72), - ACE_NTOHL (0x65616479), - ACE_NTOHL (0x52656769), - ACE_NTOHL (0x73746572), - ACE_NTOHL (0x65643a31), - ACE_NTOHL (0x2e300000), // repository ID = IDL:ImplementationRepository/AlreadyRegistered:1.0 - 18, - ACE_NTOHL (0x416c7265), - ACE_NTOHL (0x61647952), - ACE_NTOHL (0x65676973), - ACE_NTOHL (0x74657265), - ACE_NTOHL (0x64000000), // name = AlreadyRegistered - 0, // member count - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_AlreadyRegistered ( - CORBA::tk_except, - sizeof (_oc_ImplementationRepository_AlreadyRegistered), - (char *) &_oc_ImplementationRepository_AlreadyRegistered, - 0, - sizeof (ImplementationRepository::AlreadyRegistered) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_AlreadyRegistered = - &_tc_TAO_tc_ImplementationRepository_AlreadyRegistered; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_cs.cpp:63 - -ImplementationRepository::CannotActivate::CannotActivate (void) - : CORBA::UserException ( - "IDL:ImplementationRepository/CannotActivate:1.0", - "CannotActivate" - ) -{ -} - -ImplementationRepository::CannotActivate::~CannotActivate (void) -{ -} - -ImplementationRepository::CannotActivate::CannotActivate (const ::ImplementationRepository::CannotActivate &_tao_excp) - : CORBA::UserException ( - _tao_excp._rep_id (), - _tao_excp._name () - ) -{ - this->reason = CORBA::string_dup (_tao_excp.reason.in ()); -} - -ImplementationRepository::CannotActivate& -ImplementationRepository::CannotActivate::operator= (const ::ImplementationRepository::CannotActivate &_tao_excp) -{ - this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp); - this->reason = CORBA::string_dup (_tao_excp.reason.in ()); - return *this; -} - -void ImplementationRepository::CannotActivate::_tao_any_destructor (void *_tao_void_pointer) -{ - CannotActivate *_tao_tmp_pointer = - static_cast<CannotActivate*> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -ImplementationRepository::CannotActivate * -ImplementationRepository::CannotActivate::_downcast (CORBA::Exception *_tao_excp) -{ - if (!ACE_OS::strcmp ("IDL:ImplementationRepository/CannotActivate:1.0", _tao_excp->_rep_id ())) - { - return dynamic_cast<CannotActivate *> (_tao_excp); - } - else - { - return 0; - } -} - -CORBA::Exception *ImplementationRepository::CannotActivate::_alloc (void) -{ - CORBA::Exception *retval = 0; - ACE_NEW_RETURN (retval, ::ImplementationRepository::CannotActivate, 0); - return retval; -} - -CORBA::Exception * -ImplementationRepository::CannotActivate::_tao_duplicate (void) const -{ - CORBA::Exception *result; - ACE_NEW_RETURN ( - result, - ::ImplementationRepository::CannotActivate (*this), - 0 - ); - return result; -} - -void ImplementationRepository::CannotActivate::_raise (void) const -{ - TAO_RAISE (*this); -} - -void ImplementationRepository::CannotActivate::_tao_encode ( - TAO_OutputCDR &cdr - ACE_ENV_ARG_DECL - ) const -{ - if (cdr << *this) - { - return; - } - - ACE_THROW (CORBA::MARSHAL ()); -} - -void ImplementationRepository::CannotActivate::_tao_decode ( - TAO_InputCDR &cdr - ACE_ENV_ARG_DECL - ) -{ - if (cdr >> *this) - { - return; - } - - ACE_THROW (CORBA::MARSHAL ()); -} - - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ctor.cpp:66 - -ImplementationRepository::CannotActivate::CannotActivate ( - const char * _tao_reason - ) - : CORBA::UserException ( - "IDL:ImplementationRepository/CannotActivate:1.0", - "CannotActivate" - ) -{ - this->reason = CORBA::string_dup (_tao_reason); -} - -// TAO extension - the virtual _type method. -CORBA::TypeCode_ptr ImplementationRepository::CannotActivate::_type (void) const -{ - return ::ImplementationRepository::_tc_CannotActivate; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_CannotActivate[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f43616e), - ACE_NTOHL (0x6e6f7441), - ACE_NTOHL (0x63746976), - ACE_NTOHL (0x6174653a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/CannotActivate:1.0 - 15, - ACE_NTOHL (0x43616e6e), - ACE_NTOHL (0x6f744163), - ACE_NTOHL (0x74697661), - ACE_NTOHL (0x74650000), // name = CannotActivate - 1, // member count - 7, - ACE_NTOHL (0x72656173), - ACE_NTOHL (0x6f6e0000), // name = reason - CORBA::tk_string, - 0U, // string length -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_CannotActivate ( - CORBA::tk_except, - sizeof (_oc_ImplementationRepository_CannotActivate), - (char *) &_oc_ImplementationRepository_CannotActivate, - 0, - sizeof (ImplementationRepository::CannotActivate) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_CannotActivate = - &_tc_TAO_tc_ImplementationRepository_CannotActivate; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_cs.cpp:63 - -ImplementationRepository::NotFound::NotFound (void) - : CORBA::UserException ( - "IDL:ImplementationRepository/NotFound:1.0", - "NotFound" - ) -{ -} - -ImplementationRepository::NotFound::~NotFound (void) -{ -} - -ImplementationRepository::NotFound::NotFound (const ::ImplementationRepository::NotFound &_tao_excp) - : CORBA::UserException ( - _tao_excp._rep_id (), - _tao_excp._name () - ) -{ -} - -ImplementationRepository::NotFound& -ImplementationRepository::NotFound::operator= (const ::ImplementationRepository::NotFound &_tao_excp) -{ - this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp); - return *this; -} - -void ImplementationRepository::NotFound::_tao_any_destructor (void *_tao_void_pointer) -{ - NotFound *_tao_tmp_pointer = - static_cast<NotFound*> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -ImplementationRepository::NotFound * -ImplementationRepository::NotFound::_downcast (CORBA::Exception *_tao_excp) -{ - if (!ACE_OS::strcmp ("IDL:ImplementationRepository/NotFound:1.0", _tao_excp->_rep_id ())) - { - return dynamic_cast<NotFound *> (_tao_excp); - } - else - { - return 0; - } -} - -CORBA::Exception *ImplementationRepository::NotFound::_alloc (void) -{ - CORBA::Exception *retval = 0; - ACE_NEW_RETURN (retval, ::ImplementationRepository::NotFound, 0); - return retval; -} - -CORBA::Exception * -ImplementationRepository::NotFound::_tao_duplicate (void) const -{ - CORBA::Exception *result; - ACE_NEW_RETURN ( - result, - ::ImplementationRepository::NotFound (*this), - 0 - ); - return result; -} - -void ImplementationRepository::NotFound::_raise (void) const -{ - TAO_RAISE (*this); -} - -void ImplementationRepository::NotFound::_tao_encode ( - TAO_OutputCDR &cdr - ACE_ENV_ARG_DECL - ) const -{ - if (cdr << *this) - { - return; - } - - ACE_THROW (CORBA::MARSHAL ()); -} - -void ImplementationRepository::NotFound::_tao_decode ( - TAO_InputCDR &cdr - ACE_ENV_ARG_DECL - ) -{ - if (cdr >> *this) - { - return; - } - - ACE_THROW (CORBA::MARSHAL ()); -} - -// TAO extension - the virtual _type method. -CORBA::TypeCode_ptr ImplementationRepository::NotFound::_type (void) const -{ - return ::ImplementationRepository::_tc_NotFound; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_NotFound[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 42, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f4e6f74), - ACE_NTOHL (0x466f756e), - ACE_NTOHL (0x643a312e), - ACE_NTOHL (0x30000000), // repository ID = IDL:ImplementationRepository/NotFound:1.0 - 9, - ACE_NTOHL (0x4e6f7446), - ACE_NTOHL (0x6f756e64), - ACE_NTOHL (0x0), // name = NotFound - 0, // member count - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_NotFound ( - CORBA::tk_except, - sizeof (_oc_ImplementationRepository_NotFound), - (char *) &_oc_ImplementationRepository_NotFound, - 0, - sizeof (ImplementationRepository::NotFound) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_NotFound = - &_tc_TAO_tc_ImplementationRepository_NotFound; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_EnvironmentVariable[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 53, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x56617269), - ACE_NTOHL (0x61626c65), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentVariable:1.0 - 20, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7456), - ACE_NTOHL (0x61726961), - ACE_NTOHL (0x626c6500), // name = EnvironmentVariable - 2, // member count - 5, - ACE_NTOHL (0x6e616d65), - ACE_NTOHL (0x0), // name = name - CORBA::tk_string, - 0U, // string length - 6, - ACE_NTOHL (0x76616c75), - ACE_NTOHL (0x65000000), // name = value - CORBA::tk_string, - 0U, // string length -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_EnvironmentVariable ( - CORBA::tk_struct, - sizeof (_oc_ImplementationRepository_EnvironmentVariable), - (char *) &_oc_ImplementationRepository_EnvironmentVariable, - 0, - sizeof (ImplementationRepository::EnvironmentVariable) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_EnvironmentVariable = - &_tc_TAO_tc_ImplementationRepository_EnvironmentVariable; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/structure_cs.cpp:66 - -void -ImplementationRepository::EnvironmentVariable::_tao_any_destructor ( - void *_tao_void_pointer - ) -{ - EnvironmentVariable *_tao_tmp_pointer = - static_cast<EnvironmentVariable *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_Address[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 41, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416464), - ACE_NTOHL (0x72657373), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/Address:1.0 - 8, - ACE_NTOHL (0x41646472), - ACE_NTOHL (0x65737300), // name = Address - CORBA::tk_string, - 0U, // string length -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_Address ( - CORBA::tk_alias, - sizeof (_oc_ImplementationRepository_Address), - (char *) &_oc_ImplementationRepository_Address, - 0, - sizeof (ImplementationRepository::Address) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_Address = - &_tc_TAO_tc_ImplementationRepository_Address; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/sequence_cs.cpp:65 - -#if !defined (_IMPLEMENTATIONREPOSITORY_ENVIRONMENTLIST_CS_) -#define _IMPLEMENTATIONREPOSITORY_ENVIRONMENTLIST_CS_ - -ImplementationRepository::EnvironmentList::EnvironmentList (void) -{} - -ImplementationRepository::EnvironmentList::EnvironmentList ( - CORBA::ULong max - ) - : TAO_Unbounded_Sequence< - ImplementationRepository::EnvironmentVariable - > - (max) -{} - -ImplementationRepository::EnvironmentList::EnvironmentList ( - CORBA::ULong max, - CORBA::ULong length, - ImplementationRepository::EnvironmentVariable * buffer, - CORBA::Boolean release - ) - : TAO_Unbounded_Sequence< - ImplementationRepository::EnvironmentVariable - > - (max, length, buffer, release) -{} - -ImplementationRepository::EnvironmentList::EnvironmentList ( - const EnvironmentList &seq - ) - : TAO_Unbounded_Sequence< - ImplementationRepository::EnvironmentVariable - > - (seq) -{} - -ImplementationRepository::EnvironmentList::~EnvironmentList (void) -{} - -void ImplementationRepository::EnvironmentList::_tao_any_destructor ( - void * _tao_void_pointer - ) -{ - EnvironmentList * _tao_tmp_pointer = - static_cast<EnvironmentList *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_EnvironmentList[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 49, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x4c697374), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentList:1.0 - 16, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e744c), - ACE_NTOHL (0x69737400), // name = EnvironmentList - CORBA::tk_sequence, // typecode kind - 148, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - CORBA::tk_struct, // typecode kind - 132, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 53, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x56617269), - ACE_NTOHL (0x61626c65), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentVariable:1.0 - 20, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7456), - ACE_NTOHL (0x61726961), - ACE_NTOHL (0x626c6500), // name = EnvironmentVariable - 2, // member count - 5, - ACE_NTOHL (0x6e616d65), - ACE_NTOHL (0x0), // name = name - CORBA::tk_string, - 0U, // string length - 6, - ACE_NTOHL (0x76616c75), - ACE_NTOHL (0x65000000), // name = value - CORBA::tk_string, - 0U, // string length - - 0U, - -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_EnvironmentList ( - CORBA::tk_alias, - sizeof (_oc_ImplementationRepository_EnvironmentList), - (char *) &_oc_ImplementationRepository_EnvironmentList, - 0, - sizeof (ImplementationRepository::EnvironmentList) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_EnvironmentList = - &_tc_TAO_tc_ImplementationRepository_EnvironmentList; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_ActivationMode[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416374), - ACE_NTOHL (0x69766174), - ACE_NTOHL (0x696f6e4d), - ACE_NTOHL (0x6f64653a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/ActivationMode:1.0 - 15, - ACE_NTOHL (0x41637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e4d6f), - ACE_NTOHL (0x64650000), // name = ActivationMode - 4, // member count - 7, - ACE_NTOHL (0x4e4f524d), - ACE_NTOHL (0x414c0000), // name = NORMAL - 7, - ACE_NTOHL (0x4d414e55), - ACE_NTOHL (0x414c0000), // name = MANUAL - 11, - ACE_NTOHL (0x5045525f), - ACE_NTOHL (0x434c4945), - ACE_NTOHL (0x4e540000), // name = PER_CLIENT - 11, - ACE_NTOHL (0x4155544f), - ACE_NTOHL (0x5f535441), - ACE_NTOHL (0x52540000), // name = AUTO_START - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_ActivationMode ( - CORBA::tk_enum, - sizeof (_oc_ImplementationRepository_ActivationMode), - (char *) &_oc_ImplementationRepository_ActivationMode, - 0, - sizeof (ImplementationRepository::ActivationMode) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_ActivationMode = - &_tc_TAO_tc_ImplementationRepository_ActivationMode; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_StartupOptions[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f537461), - ACE_NTOHL (0x72747570), - ACE_NTOHL (0x4f707469), - ACE_NTOHL (0x6f6e733a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/StartupOptions:1.0 - 15, - ACE_NTOHL (0x53746172), - ACE_NTOHL (0x7475704f), - ACE_NTOHL (0x7074696f), - ACE_NTOHL (0x6e730000), // name = StartupOptions - 5, // member count - 13, - ACE_NTOHL (0x636f6d6d), - ACE_NTOHL (0x616e645f), - ACE_NTOHL (0x6c696e65), - ACE_NTOHL (0x0), // name = command_line - CORBA::tk_string, - 0U, // string length - 12, - ACE_NTOHL (0x656e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7400), // name = environment - CORBA::tk_alias, // typecode kind for typedefs - 236, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 49, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x4c697374), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentList:1.0 - 16, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e744c), - ACE_NTOHL (0x69737400), // name = EnvironmentList - CORBA::tk_sequence, // typecode kind - 148, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - CORBA::tk_struct, // typecode kind - 132, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 53, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x56617269), - ACE_NTOHL (0x61626c65), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentVariable:1.0 - 20, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7456), - ACE_NTOHL (0x61726961), - ACE_NTOHL (0x626c6500), // name = EnvironmentVariable - 2, // member count - 5, - ACE_NTOHL (0x6e616d65), - ACE_NTOHL (0x0), // name = name - CORBA::tk_string, - 0U, // string length - 6, - ACE_NTOHL (0x76616c75), - ACE_NTOHL (0x65000000), // name = value - CORBA::tk_string, - 0U, // string length - - 0U, - - - 18, - ACE_NTOHL (0x776f726b), - ACE_NTOHL (0x696e675f), - ACE_NTOHL (0x64697265), - ACE_NTOHL (0x63746f72), - ACE_NTOHL (0x79000000), // name = working_directory - CORBA::tk_string, - 0U, // string length - 11, - ACE_NTOHL (0x61637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e0000), // name = activation - CORBA::tk_enum, // typecode kind - 136, // encapsulation length -TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416374), - ACE_NTOHL (0x69766174), - ACE_NTOHL (0x696f6e4d), - ACE_NTOHL (0x6f64653a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/ActivationMode:1.0 - 15, - ACE_NTOHL (0x41637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e4d6f), - ACE_NTOHL (0x64650000), // name = ActivationMode - 4, // member count - 7, - ACE_NTOHL (0x4e4f524d), - ACE_NTOHL (0x414c0000), // name = NORMAL - 7, - ACE_NTOHL (0x4d414e55), - ACE_NTOHL (0x414c0000), // name = MANUAL - 11, - ACE_NTOHL (0x5045525f), - ACE_NTOHL (0x434c4945), - ACE_NTOHL (0x4e540000), // name = PER_CLIENT - 11, - ACE_NTOHL (0x4155544f), - ACE_NTOHL (0x5f535441), - ACE_NTOHL (0x52540000), // name = AUTO_START - - 10, - ACE_NTOHL (0x61637469), - ACE_NTOHL (0x7661746f), - ACE_NTOHL (0x72000000), // name = activator - CORBA::tk_string, - 0U, // string length -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_StartupOptions ( - CORBA::tk_struct, - sizeof (_oc_ImplementationRepository_StartupOptions), - (char *) &_oc_ImplementationRepository_StartupOptions, - 0, - sizeof (ImplementationRepository::StartupOptions) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_StartupOptions = - &_tc_TAO_tc_ImplementationRepository_StartupOptions; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/structure_cs.cpp:66 - -void -ImplementationRepository::StartupOptions::_tao_any_destructor ( - void *_tao_void_pointer - ) -{ - StartupOptions *_tao_tmp_pointer = - static_cast<StartupOptions *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_ServerInformation[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 51, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f536572), - ACE_NTOHL (0x76657249), - ACE_NTOHL (0x6e666f72), - ACE_NTOHL (0x6d617469), - ACE_NTOHL (0x6f6e3a31), - ACE_NTOHL (0x2e300000), // repository ID = IDL:ImplementationRepository/ServerInformation:1.0 - 18, - ACE_NTOHL (0x53657276), - ACE_NTOHL (0x6572496e), - ACE_NTOHL (0x666f726d), - ACE_NTOHL (0x6174696f), - ACE_NTOHL (0x6e000000), // name = ServerInformation - 4, // member count - 15, - ACE_NTOHL (0x6c6f6769), - ACE_NTOHL (0x63616c5f), - ACE_NTOHL (0x73657276), - ACE_NTOHL (0x65720000), // name = logical_server - CORBA::tk_string, - 0U, // string length - 7, - ACE_NTOHL (0x73657276), - ACE_NTOHL (0x65720000), // name = server - CORBA::tk_string, - 0U, // string length - 8, - ACE_NTOHL (0x73746172), - ACE_NTOHL (0x74757000), // name = startup - CORBA::tk_struct, // typecode kind - 584, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f537461), - ACE_NTOHL (0x72747570), - ACE_NTOHL (0x4f707469), - ACE_NTOHL (0x6f6e733a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/StartupOptions:1.0 - 15, - ACE_NTOHL (0x53746172), - ACE_NTOHL (0x7475704f), - ACE_NTOHL (0x7074696f), - ACE_NTOHL (0x6e730000), // name = StartupOptions - 5, // member count - 13, - ACE_NTOHL (0x636f6d6d), - ACE_NTOHL (0x616e645f), - ACE_NTOHL (0x6c696e65), - ACE_NTOHL (0x0), // name = command_line - CORBA::tk_string, - 0U, // string length - 12, - ACE_NTOHL (0x656e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7400), // name = environment - CORBA::tk_alias, // typecode kind for typedefs - 236, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 49, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x4c697374), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentList:1.0 - 16, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e744c), - ACE_NTOHL (0x69737400), // name = EnvironmentList - CORBA::tk_sequence, // typecode kind - 148, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - CORBA::tk_struct, // typecode kind - 132, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 53, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x56617269), - ACE_NTOHL (0x61626c65), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentVariable:1.0 - 20, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7456), - ACE_NTOHL (0x61726961), - ACE_NTOHL (0x626c6500), // name = EnvironmentVariable - 2, // member count - 5, - ACE_NTOHL (0x6e616d65), - ACE_NTOHL (0x0), // name = name - CORBA::tk_string, - 0U, // string length - 6, - ACE_NTOHL (0x76616c75), - ACE_NTOHL (0x65000000), // name = value - CORBA::tk_string, - 0U, // string length - - 0U, - - - 18, - ACE_NTOHL (0x776f726b), - ACE_NTOHL (0x696e675f), - ACE_NTOHL (0x64697265), - ACE_NTOHL (0x63746f72), - ACE_NTOHL (0x79000000), // name = working_directory - CORBA::tk_string, - 0U, // string length - 11, - ACE_NTOHL (0x61637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e0000), // name = activation - CORBA::tk_enum, // typecode kind - 136, // encapsulation length -TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416374), - ACE_NTOHL (0x69766174), - ACE_NTOHL (0x696f6e4d), - ACE_NTOHL (0x6f64653a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/ActivationMode:1.0 - 15, - ACE_NTOHL (0x41637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e4d6f), - ACE_NTOHL (0x64650000), // name = ActivationMode - 4, // member count - 7, - ACE_NTOHL (0x4e4f524d), - ACE_NTOHL (0x414c0000), // name = NORMAL - 7, - ACE_NTOHL (0x4d414e55), - ACE_NTOHL (0x414c0000), // name = MANUAL - 11, - ACE_NTOHL (0x5045525f), - ACE_NTOHL (0x434c4945), - ACE_NTOHL (0x4e540000), // name = PER_CLIENT - 11, - ACE_NTOHL (0x4155544f), - ACE_NTOHL (0x5f535441), - ACE_NTOHL (0x52540000), // name = AUTO_START - - 10, - ACE_NTOHL (0x61637469), - ACE_NTOHL (0x7661746f), - ACE_NTOHL (0x72000000), // name = activator - CORBA::tk_string, - 0U, // string length - - 9, - ACE_NTOHL (0x6c6f6361), - ACE_NTOHL (0x74696f6e), - ACE_NTOHL (0x0), // name = location - CORBA::tk_alias, // typecode kind for typedefs - 72, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 41, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416464), - ACE_NTOHL (0x72657373), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/Address:1.0 - 8, - ACE_NTOHL (0x41646472), - ACE_NTOHL (0x65737300), // name = Address - CORBA::tk_string, - 0U, // string length - -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_ServerInformation ( - CORBA::tk_struct, - sizeof (_oc_ImplementationRepository_ServerInformation), - (char *) &_oc_ImplementationRepository_ServerInformation, - 0, - sizeof (ImplementationRepository::ServerInformation) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_ServerInformation = - &_tc_TAO_tc_ImplementationRepository_ServerInformation; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/structure_cs.cpp:66 - -void -ImplementationRepository::ServerInformation::_tao_any_destructor ( - void *_tao_void_pointer - ) -{ - ServerInformation *_tao_tmp_pointer = - static_cast<ServerInformation *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/sequence_cs.cpp:65 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST_CS_ - -ImplementationRepository::ServerInformationList::ServerInformationList (void) -{} - -ImplementationRepository::ServerInformationList::ServerInformationList ( - CORBA::ULong max - ) - : TAO_Unbounded_Sequence< - ImplementationRepository::ServerInformation - > - (max) -{} - -ImplementationRepository::ServerInformationList::ServerInformationList ( - CORBA::ULong max, - CORBA::ULong length, - ImplementationRepository::ServerInformation * buffer, - CORBA::Boolean release - ) - : TAO_Unbounded_Sequence< - ImplementationRepository::ServerInformation - > - (max, length, buffer, release) -{} - -ImplementationRepository::ServerInformationList::ServerInformationList ( - const ServerInformationList &seq - ) - : TAO_Unbounded_Sequence< - ImplementationRepository::ServerInformation - > - (seq) -{} - -ImplementationRepository::ServerInformationList::~ServerInformationList (void) -{} - -void ImplementationRepository::ServerInformationList::_tao_any_destructor ( - void * _tao_void_pointer - ) -{ - ServerInformationList * _tao_tmp_pointer = - static_cast<ServerInformationList *> (_tao_void_pointer); - delete _tao_tmp_pointer; -} - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_ServerInformationList[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 55, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f536572), - ACE_NTOHL (0x76657249), - ACE_NTOHL (0x6e666f72), - ACE_NTOHL (0x6d617469), - ACE_NTOHL (0x6f6e4c69), - ACE_NTOHL (0x73743a31), - ACE_NTOHL (0x2e300000), // repository ID = IDL:ImplementationRepository/ServerInformationList:1.0 - 22, - ACE_NTOHL (0x53657276), - ACE_NTOHL (0x6572496e), - ACE_NTOHL (0x666f726d), - ACE_NTOHL (0x6174696f), - ACE_NTOHL (0x6e4c6973), - ACE_NTOHL (0x74000000), // name = ServerInformationList - CORBA::tk_sequence, // typecode kind - 852, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - CORBA::tk_struct, // typecode kind - 836, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 51, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f536572), - ACE_NTOHL (0x76657249), - ACE_NTOHL (0x6e666f72), - ACE_NTOHL (0x6d617469), - ACE_NTOHL (0x6f6e3a31), - ACE_NTOHL (0x2e300000), // repository ID = IDL:ImplementationRepository/ServerInformation:1.0 - 18, - ACE_NTOHL (0x53657276), - ACE_NTOHL (0x6572496e), - ACE_NTOHL (0x666f726d), - ACE_NTOHL (0x6174696f), - ACE_NTOHL (0x6e000000), // name = ServerInformation - 4, // member count - 15, - ACE_NTOHL (0x6c6f6769), - ACE_NTOHL (0x63616c5f), - ACE_NTOHL (0x73657276), - ACE_NTOHL (0x65720000), // name = logical_server - CORBA::tk_string, - 0U, // string length - 7, - ACE_NTOHL (0x73657276), - ACE_NTOHL (0x65720000), // name = server - CORBA::tk_string, - 0U, // string length - 8, - ACE_NTOHL (0x73746172), - ACE_NTOHL (0x74757000), // name = startup - CORBA::tk_struct, // typecode kind - 584, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f537461), - ACE_NTOHL (0x72747570), - ACE_NTOHL (0x4f707469), - ACE_NTOHL (0x6f6e733a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/StartupOptions:1.0 - 15, - ACE_NTOHL (0x53746172), - ACE_NTOHL (0x7475704f), - ACE_NTOHL (0x7074696f), - ACE_NTOHL (0x6e730000), // name = StartupOptions - 5, // member count - 13, - ACE_NTOHL (0x636f6d6d), - ACE_NTOHL (0x616e645f), - ACE_NTOHL (0x6c696e65), - ACE_NTOHL (0x0), // name = command_line - CORBA::tk_string, - 0U, // string length - 12, - ACE_NTOHL (0x656e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7400), // name = environment - CORBA::tk_alias, // typecode kind for typedefs - 236, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 49, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x4c697374), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentList:1.0 - 16, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e744c), - ACE_NTOHL (0x69737400), // name = EnvironmentList - CORBA::tk_sequence, // typecode kind - 148, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - CORBA::tk_struct, // typecode kind - 132, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 53, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f456e76), - ACE_NTOHL (0x69726f6e), - ACE_NTOHL (0x6d656e74), - ACE_NTOHL (0x56617269), - ACE_NTOHL (0x61626c65), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/EnvironmentVariable:1.0 - 20, - ACE_NTOHL (0x456e7669), - ACE_NTOHL (0x726f6e6d), - ACE_NTOHL (0x656e7456), - ACE_NTOHL (0x61726961), - ACE_NTOHL (0x626c6500), // name = EnvironmentVariable - 2, // member count - 5, - ACE_NTOHL (0x6e616d65), - ACE_NTOHL (0x0), // name = name - CORBA::tk_string, - 0U, // string length - 6, - ACE_NTOHL (0x76616c75), - ACE_NTOHL (0x65000000), // name = value - CORBA::tk_string, - 0U, // string length - - 0U, - - - 18, - ACE_NTOHL (0x776f726b), - ACE_NTOHL (0x696e675f), - ACE_NTOHL (0x64697265), - ACE_NTOHL (0x63746f72), - ACE_NTOHL (0x79000000), // name = working_directory - CORBA::tk_string, - 0U, // string length - 11, - ACE_NTOHL (0x61637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e0000), // name = activation - CORBA::tk_enum, // typecode kind - 136, // encapsulation length -TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416374), - ACE_NTOHL (0x69766174), - ACE_NTOHL (0x696f6e4d), - ACE_NTOHL (0x6f64653a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/ActivationMode:1.0 - 15, - ACE_NTOHL (0x41637469), - ACE_NTOHL (0x76617469), - ACE_NTOHL (0x6f6e4d6f), - ACE_NTOHL (0x64650000), // name = ActivationMode - 4, // member count - 7, - ACE_NTOHL (0x4e4f524d), - ACE_NTOHL (0x414c0000), // name = NORMAL - 7, - ACE_NTOHL (0x4d414e55), - ACE_NTOHL (0x414c0000), // name = MANUAL - 11, - ACE_NTOHL (0x5045525f), - ACE_NTOHL (0x434c4945), - ACE_NTOHL (0x4e540000), // name = PER_CLIENT - 11, - ACE_NTOHL (0x4155544f), - ACE_NTOHL (0x5f535441), - ACE_NTOHL (0x52540000), // name = AUTO_START - - 10, - ACE_NTOHL (0x61637469), - ACE_NTOHL (0x7661746f), - ACE_NTOHL (0x72000000), // name = activator - CORBA::tk_string, - 0U, // string length - - 9, - ACE_NTOHL (0x6c6f6361), - ACE_NTOHL (0x74696f6e), - ACE_NTOHL (0x0), // name = location - CORBA::tk_alias, // typecode kind for typedefs - 72, // encapsulation length - TAO_ENCAP_BYTE_ORDER, // byte order - 41, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f416464), - ACE_NTOHL (0x72657373), - ACE_NTOHL (0x3a312e30), - ACE_NTOHL (0x0), // repository ID = IDL:ImplementationRepository/Address:1.0 - 8, - ACE_NTOHL (0x41646472), - ACE_NTOHL (0x65737300), // name = Address - CORBA::tk_string, - 0U, // string length - - - 0U, - -}; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_ServerInformationList ( - CORBA::tk_alias, - sizeof (_oc_ImplementationRepository_ServerInformationList), - (char *) &_oc_ImplementationRepository_ServerInformationList, - 0, - sizeof (ImplementationRepository::ServerInformationList) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_ServerInformationList = - &_tc_TAO_tc_ImplementationRepository_ServerInformationList; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for ImplementationRepository::Administration. - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::Administration_ptr -TAO::Objref_Traits<ImplementationRepository::Administration>::duplicate ( - ImplementationRepository::Administration_ptr p - ) -{ - return ImplementationRepository::Administration::_duplicate (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -void -TAO::Objref_Traits<ImplementationRepository::Administration>::release ( - ImplementationRepository::Administration_ptr p - ) -{ - CORBA::release (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::Administration_ptr -TAO::Objref_Traits<ImplementationRepository::Administration>::nil (void) -{ - return ImplementationRepository::Administration::_nil (); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -CORBA::Boolean -TAO::Objref_Traits<ImplementationRepository::Administration>::marshal ( - ImplementationRepository::Administration_ptr p, - TAO_OutputCDR & cdr - ) -{ - return CORBA::Object::marshal (p, cdr); -} - -// Function pointer for collocation factory initialization. -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ) = 0; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::activate_server ( - const char * server - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - 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::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server - }; - - static TAO::Exception_Data - _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, - 2, - "activate_server", - 15, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_activate_server_exceptiondata, - 2 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -char * ImplementationRepository::Administration::activate_server_with_startup ( - const char * server, - ::CORBA::Long check_startup - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - 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< ::CORBA::Char *>::ret_val _tao_retval; - TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val _tao_server (server); - TAO::Arg_Traits< CORBA::Long>::in_arg_val _tao_check_startup (check_startup); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_check_startup - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_activate_server_with_startup_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, - 3, - "activate_server_with_startup", - 28, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_activate_server_with_startup_exceptiondata, - 2 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK_RETURN (_tao_retval.excp ()); - - return _tao_retval.retn (); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::register_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_register_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, - 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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::remove_server ( - const char * server - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::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::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_remove_server_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 2, - "remove_server", - 13, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_remove_server_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::shutdown_server ( - const char * server - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::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::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 2, - "shutdown_server", - 15, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::server_is_running ( - const char * server, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::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::Address>::in_arg_val _tao_addr (addr); - TAO::Arg_Traits< ::ImplementationRepository::ServerObject>::in_arg_val _tao_server_object (server_object); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server, - &_tao_addr, - &_tao_server_object - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_server_is_running_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 4, - "server_is_running", - 17, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_server_is_running_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::server_is_shutting_down ( - const char * server - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::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::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_server - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 2, - "server_is_shutting_down", - 23, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::find ( - const char * server, - ::ImplementationRepository::ServerInformation_out info - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::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::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, - 3, - "find", - 4, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_find_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::list ( - ::CORBA::ULong how_many, - ::ImplementationRepository::ServerInformationList_out server_list, - ::ImplementationRepository::ServerInformationIterator_out server_iterator - 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< 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, - &_tao_how_many, - &_tao_server_list, - &_tao_server_iterator - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 4, - "list", - 4, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::Administration::shutdown_repo ( - ACE_ENV_SINGLE_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::Argument *_the_tao_operation_signature [] = - { - &_tao_retval - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 1, - "shutdown_repo", - 13, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -char * ImplementationRepository::Administration::find_ior ( - const char * object_name - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::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< ::CORBA::Char *>::ret_val _tao_retval; - TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val _tao_object_name (object_name); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_object_name - }; - - static TAO::Exception_Data - _tao_ImplementationRepository_Administration_find_ior_exceptiondata [] = - { - { - "IDL:ImplementationRepository/NotFound:1.0", - ImplementationRepository::NotFound::_alloc, - ImplementationRepository::_tc_NotFound - } - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 2, - "find_ior", - 8, - this->the_TAO_Administration_Proxy_Broker_ - ); - - _tao_call.invoke ( - _tao_ImplementationRepository_Administration_find_ior_exceptiondata, - 1 - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK_RETURN (_tao_retval.excp ()); - - return _tao_retval.retn (); -} - -ImplementationRepository::Administration::Administration (void) - : the_TAO_Administration_Proxy_Broker_ (0) -{ - this->ImplementationRepository_Administration_setup_collocation (); -} - -void -ImplementationRepository::Administration::ImplementationRepository_Administration_setup_collocation () -{ - if (::ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer) - { - this->the_TAO_Administration_Proxy_Broker_ = - ::ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer (this); - } -} - -ImplementationRepository::Administration::~Administration (void) -{} - -void -ImplementationRepository::Administration::_tao_any_destructor (void *_tao_void_pointer) -{ - Administration *_tao_tmp_pointer = - static_cast<Administration *> (_tao_void_pointer); - CORBA::release (_tao_tmp_pointer); -} - -ImplementationRepository::Administration_ptr -ImplementationRepository::Administration::_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<Administration>::narrow ( - _tao_objref, - "IDL:ImplementationRepository/Administration:1.0", - ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::Administration_ptr -ImplementationRepository::Administration::_unchecked_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<Administration>::unchecked_narrow ( - _tao_objref, - "IDL:ImplementationRepository/Administration:1.0", - ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::Administration_ptr -ImplementationRepository::Administration::_duplicate (Administration_ptr obj) -{ - if (! CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -CORBA::Boolean -ImplementationRepository::Administration::_is_a ( - const char *value - ACE_ENV_ARG_DECL - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/Administration:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; // success using local knowledge - } - else - { - return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ( - value - ACE_ENV_ARG_PARAMETER - ); - } -} - -const char* ImplementationRepository::Administration::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/Administration:1.0"; -} - -CORBA::Boolean -ImplementationRepository::Administration::marshal (TAO_OutputCDR &cdr) -{ - return (cdr << this); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_Administration[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 48, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f41646d), - ACE_NTOHL (0x696e6973), - ACE_NTOHL (0x74726174), - ACE_NTOHL (0x696f6e3a), - ACE_NTOHL (0x312e3000), // repository ID = IDL:ImplementationRepository/Administration:1.0 - 15, - ACE_NTOHL (0x41646d69), - ACE_NTOHL (0x6e697374), - ACE_NTOHL (0x72617469), - ACE_NTOHL (0x6f6e0000), // name = Administration - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_Administration ( - CORBA::tk_objref, - sizeof (_oc_ImplementationRepository_Administration), - (char *) &_oc_ImplementationRepository_Administration, - 0, - sizeof (ImplementationRepository::Administration) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_Administration = - &_tc_TAO_tc_ImplementationRepository_Administration; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60 - -// Traits specializations for ImplementationRepository::ServerInformationIterator. - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::ServerInformationIterator_ptr -TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator>::duplicate ( - ImplementationRepository::ServerInformationIterator_ptr p - ) -{ - return ImplementationRepository::ServerInformationIterator::_duplicate (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -void -TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator>::release ( - ImplementationRepository::ServerInformationIterator_ptr p - ) -{ - CORBA::release (p); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -ImplementationRepository::ServerInformationIterator_ptr -TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator>::nil (void) -{ - return ImplementationRepository::ServerInformationIterator::_nil (); -} - -ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION -CORBA::Boolean -TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator>::marshal ( - ImplementationRepository::ServerInformationIterator_ptr p, - TAO_OutputCDR & cdr - ) -{ - return CORBA::Object::marshal (p, cdr); -} - -// Function pointer for collocation factory initialization. -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ) = 0; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -CORBA::Boolean ImplementationRepository::ServerInformationIterator::next_n ( - ::CORBA::ULong how_many, - ::ImplementationRepository::ServerInformationList_out server_list - 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_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_server_list (server_list); - - TAO::Argument *_the_tao_operation_signature [] = - { - &_tao_retval, - &_tao_how_many, - &_tao_server_list - }; - - TAO::Invocation_Adapter _tao_call ( - this, - _the_tao_operation_signature, - 3, - "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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_cs.cpp:78 - -void ImplementationRepository::ServerInformationIterator::destroy ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (!this->is_evaluated ()) - { - 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, - 1, - "destroy", - 7, - this->the_TAO_ServerInformationIterator_Proxy_Broker_ - ); - - _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -ImplementationRepository::ServerInformationIterator::ServerInformationIterator (void) - : the_TAO_ServerInformationIterator_Proxy_Broker_ (0) -{ - this->ImplementationRepository_ServerInformationIterator_setup_collocation (); -} - -void -ImplementationRepository::ServerInformationIterator::ImplementationRepository_ServerInformationIterator_setup_collocation () -{ - if (::ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer) - { - this->the_TAO_ServerInformationIterator_Proxy_Broker_ = - ::ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer (this); - } -} - -ImplementationRepository::ServerInformationIterator::~ServerInformationIterator (void) -{} - -void -ImplementationRepository::ServerInformationIterator::_tao_any_destructor (void *_tao_void_pointer) -{ - ServerInformationIterator *_tao_tmp_pointer = - static_cast<ServerInformationIterator *> (_tao_void_pointer); - CORBA::release (_tao_tmp_pointer); -} - -ImplementationRepository::ServerInformationIterator_ptr -ImplementationRepository::ServerInformationIterator::_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<ServerInformationIterator>::narrow ( - _tao_objref, - "IDL:ImplementationRepository/ServerInformationIterator:1.0", - ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::ServerInformationIterator_ptr -ImplementationRepository::ServerInformationIterator::_unchecked_narrow ( - CORBA::Object_ptr _tao_objref - ACE_ENV_ARG_DECL - ) -{ - return - TAO::Narrow_Utils<ServerInformationIterator>::unchecked_narrow ( - _tao_objref, - "IDL:ImplementationRepository/ServerInformationIterator:1.0", - ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer - ACE_ENV_ARG_PARAMETER - ); -} - -ImplementationRepository::ServerInformationIterator_ptr -ImplementationRepository::ServerInformationIterator::_duplicate (ServerInformationIterator_ptr obj) -{ - if (! CORBA::is_nil (obj)) - { - obj->_add_ref (); - } - - return obj; -} - -CORBA::Boolean -ImplementationRepository::ServerInformationIterator::_is_a ( - const char *value - ACE_ENV_ARG_DECL - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/ServerInformationIterator:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; // success using local knowledge - } - else - { - return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ( - value - ACE_ENV_ARG_PARAMETER - ); - } -} - -const char* ImplementationRepository::ServerInformationIterator::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/ServerInformationIterator:1.0"; -} - -CORBA::Boolean -ImplementationRepository::ServerInformationIterator::marshal (TAO_OutputCDR &cdr) -{ - return (cdr << this); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_defn.cpp:290 - -static const CORBA::Long _oc_ImplementationRepository_ServerInformationIterator[] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order - 59, - ACE_NTOHL (0x49444c3a), - ACE_NTOHL (0x496d706c), - ACE_NTOHL (0x656d656e), - ACE_NTOHL (0x74617469), - ACE_NTOHL (0x6f6e5265), - ACE_NTOHL (0x706f7369), - ACE_NTOHL (0x746f7279), - ACE_NTOHL (0x2f536572), - ACE_NTOHL (0x76657249), - ACE_NTOHL (0x6e666f72), - ACE_NTOHL (0x6d617469), - ACE_NTOHL (0x6f6e4974), - ACE_NTOHL (0x65726174), - ACE_NTOHL (0x6f723a31), - ACE_NTOHL (0x2e300000), // repository ID = IDL:ImplementationRepository/ServerInformationIterator:1.0 - 26, - ACE_NTOHL (0x53657276), - ACE_NTOHL (0x6572496e), - ACE_NTOHL (0x666f726d), - ACE_NTOHL (0x6174696f), - ACE_NTOHL (0x6e497465), - ACE_NTOHL (0x7261746f), - ACE_NTOHL (0x72000000), // name = ServerInformationIterator - }; - -static CORBA::TypeCode _tc_TAO_tc_ImplementationRepository_ServerInformationIterator ( - CORBA::tk_objref, - sizeof (_oc_ImplementationRepository_ServerInformationIterator), - (char *) &_oc_ImplementationRepository_ServerInformationIterator, - 0, - sizeof (ImplementationRepository::ServerInformationIterator) - ); - -namespace ImplementationRepository -{ - ::CORBA::TypeCode_ptr _tc_ServerInformationIterator = - &_tc_TAO_tc_ImplementationRepository_ServerInformationIterator; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Impl_T<ImplementationRepository::ServerObject>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const -{ - _tao_elem = CORBA::Object::_duplicate (this->value_); - return 1; -} - -// Copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ServerObject_ptr _tao_elem - ) -{ - ImplementationRepository::ServerObject_ptr _tao_objptr = - ImplementationRepository::ServerObject::_duplicate (_tao_elem); - _tao_any <<= &_tao_objptr; -} - -// Non-copying insertion. -void -operator<<= ( - CORBA::Any &_tao_any, - ImplementationRepository::ServerObject_ptr *_tao_elem - ) -{ - TAO::Any_Impl_T<ImplementationRepository::ServerObject>::insert ( - _tao_any, - ImplementationRepository::ServerObject::_tao_any_destructor, - ImplementationRepository::_tc_ServerObject, - *_tao_elem - ); -} - -CORBA::Boolean -operator>>= ( - const CORBA::Any &_tao_any, - ImplementationRepository::ServerObject_ptr &_tao_elem - ) -{ - return - TAO::Any_Impl_T<ImplementationRepository::ServerObject>::extract ( - _tao_any, - ImplementationRepository::ServerObject::_tao_any_destructor, - ImplementationRepository::_tc_ServerObject, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Dual_Impl_T<ImplementationRepository::AlreadyRegistered>::demarshal_value ( - TAO_InputCDR & cdr - ) -{ - CORBA::String_var id; - - if ((cdr >> id.out ()) == 0) - { - return 0; - } - - ACE_TRY_NEW_ENV - { - this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 1; -} - -// 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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Dual_Impl_T<ImplementationRepository::CannotActivate>::demarshal_value ( - TAO_InputCDR & cdr - ) -{ - CORBA::String_var id; - - if ((cdr >> id.out ()) == 0) - { - return 0; - } - - ACE_TRY_NEW_ENV - { - this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 1; -} - -// 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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Dual_Impl_T<ImplementationRepository::NotFound>::demarshal_value ( - TAO_InputCDR & cdr - ) -{ - CORBA::String_var id; - - if ((cdr >> id.out ()) == 0) - { - return 0; - } - - ACE_TRY_NEW_ENV - { - this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 1; -} - -// 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 -// E:\doc_cvs\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 -// E:\doc_cvs\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, - ImplementationRepository::_tc_EnvironmentList, - _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, - ImplementationRepository::_tc_EnvironmentList, - _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, - ImplementationRepository::_tc_EnvironmentList, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\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 -// E:\doc_cvs\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 -// E:\doc_cvs\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 -// E:\doc_cvs\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, - ImplementationRepository::_tc_ServerInformationList, - _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, - ImplementationRepository::_tc_ServerInformationList, - _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, - ImplementationRepository::_tc_ServerInformationList, - _tao_elem - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Impl_T<ImplementationRepository::Administration>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const -{ - _tao_elem = CORBA::Object::_duplicate (this->value_); - return 1; -} - -// 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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_cs.cpp:50 - -ACE_TEMPLATE_SPECIALIZATION -CORBA::Boolean -TAO::Any_Impl_T<ImplementationRepository::ServerInformationIterator>::to_object ( - CORBA::Object_ptr &_tao_elem - ) const -{ - _tao_elem = CORBA::Object::_duplicate (this->value_); - return 1; -} - -// 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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_cs.cpp:63 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::ServerObject_ptr _tao_objref - ) -{ - CORBA::Object_ptr _tao_corba_obj = _tao_objref; - return (strm << _tao_corba_obj); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::ServerObject_ptr &_tao_objref - ) -{ - CORBA::Object_var obj; - - if ((strm >> obj.inout ()) == 0) - { - return 0; - } - - typedef ::ImplementationRepository::ServerObject RHS_SCOPED_NAME; - - // Narrow to the right type. - _tao_objref = - TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow ( - obj.in (), - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer - ); - - return 1; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/cdr_op_cs.cpp:60 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::AlreadyRegistered &_tao_aggregate - ) -{ - // First marshal the repository ID. - if (strm << _tao_aggregate._rep_id ()) - { - return 1; - } - else - { - return 0; - } -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &, - ImplementationRepository::AlreadyRegistered& - ) -{ - return 1; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/cdr_op_cs.cpp:60 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::CannotActivate &_tao_aggregate - ) -{ - // First marshal the repository ID. - if (strm << _tao_aggregate._rep_id ()) - { - // Now marshal the members (if any). - if ( - (strm << _tao_aggregate.reason.in ()) - ) - { - return 1; - } - else - { - return 0; - } - } - else - { - return 0; - } -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::CannotActivate &_tao_aggregate - ) -{ - // Demarshal the members. - if ( - (strm >> _tao_aggregate.reason.out ()) - ) - { - return 1; - } - else - { - return 0; - } -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/cdr_op_cs.cpp:60 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::NotFound &_tao_aggregate - ) -{ - // First marshal the repository ID. - if (strm << _tao_aggregate._rep_id ()) - { - return 1; - } - else - { - return 0; - } -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &, - ImplementationRepository::NotFound& - ) -{ - return 1; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/cdr_op_cs.cpp:61 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::EnvironmentVariable &_tao_aggregate - ) -{ - return - (strm << _tao_aggregate.name.in ()) && - (strm << _tao_aggregate.value.in ()); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::EnvironmentVariable &_tao_aggregate - ) -{ - return - (strm >> _tao_aggregate.name.out ()) && - (strm >> _tao_aggregate.value.out ()); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\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_ - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::EnvironmentList &_tao_sequence - ) -{ - const CORBA::ULong _tao_seq_len = _tao_sequence.length (); - - if (strm << _tao_seq_len) - { - // Encode all elements. - CORBA::Boolean _tao_marshal_flag = 1; - - 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 0; -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::EnvironmentList &_tao_sequence - ) -{ - CORBA::ULong _tao_seq_len; - - if (strm >> _tao_seq_len) - { - // Add a check to the length of the sequence - // to make sure it does not exceed the length - // of the stream. (See bug 58.) - if (_tao_seq_len > strm.length ()) - { - return 0; - } - - // Set the length of the sequence. - _tao_sequence.length (_tao_seq_len); - - // If length is 0 we return true. - if (0 >= _tao_seq_len) - { - return 1; - } - - // Retrieve all the elements. - CORBA::Boolean _tao_marshal_flag = 1; - - 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 0; -} - -#endif /* _TAO_CDR_OP_ImplementationRepository_EnvironmentList_CPP_ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_enum/cdr_op_cs.cpp:51 - -CORBA::Boolean operator<< (TAO_OutputCDR &strm, const ImplementationRepository::ActivationMode &_tao_enumval) -{ - CORBA::ULong _tao_temp = _tao_enumval; - return strm << _tao_temp; -} - -CORBA::Boolean operator>> (TAO_InputCDR &strm, ImplementationRepository::ActivationMode &_tao_enumval) -{ - CORBA::ULong _tao_temp = 0; - CORBA::Boolean _tao_result = strm >> _tao_temp; - - if (_tao_result == 1) - { - _tao_enumval = static_cast<ImplementationRepository::ActivationMode> (_tao_temp); - } - - return _tao_result; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/cdr_op_cs.cpp:61 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::StartupOptions &_tao_aggregate - ) -{ - return - (strm << _tao_aggregate.command_line.in ()) && - (strm << _tao_aggregate.environment) && - (strm << _tao_aggregate.working_directory.in ()) && - (strm << _tao_aggregate.activation) && - (strm << _tao_aggregate.activator.in ()); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::StartupOptions &_tao_aggregate - ) -{ - return - (strm >> _tao_aggregate.command_line.out ()) && - (strm >> _tao_aggregate.environment) && - (strm >> _tao_aggregate.working_directory.out ()) && - (strm >> _tao_aggregate.activation) && - (strm >> _tao_aggregate.activator.out ()); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/cdr_op_cs.cpp:61 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::ServerInformation &_tao_aggregate - ) -{ - return - (strm << _tao_aggregate.logical_server.in ()) && - (strm << _tao_aggregate.server.in ()) && - (strm << _tao_aggregate.startup) && - (strm << _tao_aggregate.location.in ()); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::ServerInformation &_tao_aggregate - ) -{ - return - (strm >> _tao_aggregate.logical_server.out ()) && - (strm >> _tao_aggregate.server.out ()) && - (strm >> _tao_aggregate.startup) && - (strm >> _tao_aggregate.location.out ()); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\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_ - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::ServerInformationList &_tao_sequence - ) -{ - const CORBA::ULong _tao_seq_len = _tao_sequence.length (); - - if (strm << _tao_seq_len) - { - // Encode all elements. - CORBA::Boolean _tao_marshal_flag = 1; - - 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 0; -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::ServerInformationList &_tao_sequence - ) -{ - CORBA::ULong _tao_seq_len; - - if (strm >> _tao_seq_len) - { - // Add a check to the length of the sequence - // to make sure it does not exceed the length - // of the stream. (See bug 58.) - if (_tao_seq_len > strm.length ()) - { - return 0; - } - - // Set the length of the sequence. - _tao_sequence.length (_tao_seq_len); - - // If length is 0 we return true. - if (0 >= _tao_seq_len) - { - return 1; - } - - // Retrieve all the elements. - CORBA::Boolean _tao_marshal_flag = 1; - - 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 0; -} - -#endif /* _TAO_CDR_OP_ImplementationRepository_ServerInformationList_CPP_ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_cs.cpp:63 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::Administration_ptr _tao_objref - ) -{ - CORBA::Object_ptr _tao_corba_obj = _tao_objref; - return (strm << _tao_corba_obj); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::Administration_ptr &_tao_objref - ) -{ - CORBA::Object_var obj; - - if ((strm >> obj.inout ()) == 0) - { - return 0; - } - - 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; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_cs.cpp:63 - -CORBA::Boolean operator<< ( - TAO_OutputCDR &strm, - const ImplementationRepository::ServerInformationIterator_ptr _tao_objref - ) -{ - CORBA::Object_ptr _tao_corba_obj = _tao_objref; - return (strm << _tao_corba_obj); -} - -CORBA::Boolean operator>> ( - TAO_InputCDR &strm, - ImplementationRepository::ServerInformationIterator_ptr &_tao_objref - ) -{ - CORBA::Object_var obj; - - if ((strm >> obj.inout ()) == 0) - { - return 0; - } - - 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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:1628 - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_ - - template class - TAO::Arg_Traits< - ImplementationRepository::ServerObject - >; - - template class - TAO::Object_Arg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - TAO::Objref_Traits<ImplementationRepository::ServerObject> - >; - -#endif /* end #if !defined */ - - template class - TAO::Objref_Traits< - ImplementationRepository::ServerObject - >; - - template class - TAO_Objref_Var_T< - ImplementationRepository::ServerObject - >; - - template class - TAO_Objref_Out_T< - ImplementationRepository::ServerObject - >; - - template class - TAO::Narrow_Utils< - ImplementationRepository::ServerObject - >; - - template class - TAO::Any_Impl_T< - ImplementationRepository::ServerObject - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::AlreadyRegistered - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::CannotActivate - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::NotFound - >; - - template class - TAO_Var_Var_T< - ImplementationRepository::EnvironmentVariable - >; - - template class - TAO_Var_Base_T< - ImplementationRepository::EnvironmentVariable - >; - - template class - TAO_Out_T< - ImplementationRepository::EnvironmentVariable, - ImplementationRepository::EnvironmentVariable_var - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::EnvironmentVariable - >; - - template class - TAO_VarSeq_Var_T< - ImplementationRepository::EnvironmentList, - ImplementationRepository::EnvironmentVariable - >; - - template class - TAO_Seq_Var_Base_T< - ImplementationRepository::EnvironmentList, - ImplementationRepository::EnvironmentVariable - >; - - template class - TAO_Seq_Out_T< - ImplementationRepository::EnvironmentList, - ImplementationRepository::EnvironmentList_var, - ImplementationRepository::EnvironmentVariable - >; - -#if !defined (_IMPLEMENTATIONREPOSITORY_ENVIRONMENTVARIABLE__EXPLICIT_CS_) -#define _IMPLEMENTATIONREPOSITORY_ENVIRONMENTVARIABLE__EXPLICIT_CS_ - - template class - TAO_Unbounded_Sequence< - ImplementationRepository::EnvironmentVariable - >; - -#endif /* end #if !defined */ - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::EnvironmentList - >; - - template class - TAO::Any_Basic_Impl_T< - ImplementationRepository::ActivationMode - >; - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::StartupOptions>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - >; - -#endif /* end #if !defined */ - - template class - TAO_Var_Var_T< - ImplementationRepository::StartupOptions - >; - - template class - TAO_Var_Base_T< - ImplementationRepository::StartupOptions - >; - - template class - TAO_Out_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::StartupOptions - >; - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::ServerInformation>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - >; - -#endif /* end #if !defined */ - - template class - TAO_Var_Var_T< - ImplementationRepository::ServerInformation - >; - - template class - TAO_Var_Base_T< - ImplementationRepository::ServerInformation - >; - - template class - TAO_Out_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var - >; - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::ServerInformation - >; - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_TMPLINST_CS_ - - template class TAO::Arg_Traits<ImplementationRepository::ServerInformationList>; - - template class - TAO::Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - >; - -#endif /* end #if !defined */ - - template class - TAO_VarSeq_Var_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformation - >; - - template class - TAO_Seq_Var_Base_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformation - >; - - template class - TAO_Seq_Out_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformation - >; - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__EXPLICIT_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__EXPLICIT_CS_ - - template class - TAO_Unbounded_Sequence< - ImplementationRepository::ServerInformation - >; - -#endif /* end #if !defined */ - - template class - TAO::Any_Dual_Impl_T< - ImplementationRepository::ServerInformationList - >; - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_ - - template class - TAO::Arg_Traits< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO::Object_Arg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> - >; - -#endif /* end #if !defined */ - - template class - TAO::Out_Var_Size_Argument_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_out - >; - - template class - TAO::Objref_Traits< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO_Objref_Var_T< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO_Objref_Out_T< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO::Narrow_Utils< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO::Any_Impl_T< - ImplementationRepository::ServerInformationIterator - >; - - template class - TAO::In_Var_Size_Argument_T< - ImplementationRepository::StartupOptions - >; - - template class - TAO::In_Object_Argument_T< - ImplementationRepository::ServerObject_ptr - >; - - template class - TAO::Out_Var_Size_Argument_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_out - >; - - template class - TAO::Out_Object_Argument_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_out - >; - - template class - TAO::Objref_Traits< - ImplementationRepository::Administration - >; - - template class - TAO_Objref_Var_T< - ImplementationRepository::Administration - >; - - template class - TAO_Objref_Out_T< - ImplementationRepository::Administration - >; - - template class - TAO::Narrow_Utils< - ImplementationRepository::Administration - >; - - template class - TAO::Any_Impl_T< - ImplementationRepository::Administration - >; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate \ - TAO::Arg_Traits< \ - ImplementationRepository::ServerObject \ - > - -# pragma instantiate \ - TAO::Object_Arg_Traits_T< \ - ImplementationRepository::ServerObject_ptr, \ - ImplementationRepository::ServerObject_var, \ - ImplementationRepository::ServerObject_out, \ - TAO::Objref_Traits<ImplementationRepository::ServerObject> \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO::Objref_Traits< \ - ImplementationRepository::ServerObject \ - > - -# pragma instantiate \ - TAO_Objref_Var_T< \ - ImplementationRepository::ServerObject - > - -# pragma instantiate \ - TAO_Objref_Out_T< \ - ImplementationRepository::ServerObject - > - -# pragma instantiate \ - TAO::Narrow_Utils< \ - ImplementationRepository::ServerObject \ - > - -# pragma instantiate \ - TAO::Any_Impl_T< \ - ImplementationRepository::ServerObject \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::AlreadyRegistered \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::CannotActivate \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::NotFound \ - > - -# pragma instantiate \ - TAO_Var_Var_T< \ - ImplementationRepository::EnvironmentVariable \ - > - -# pragma instantiate \ - TAO_Var_Base_T< \ - ImplementationRepository::EnvironmentVariable \ - > - -# pragma instantiate \ - TAO_Out_T< \ - ImplementationRepository::EnvironmentVariable, \ - ImplementationRepository::EnvironmentVariable_var \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::EnvironmentVariable \ - > - -# pragma instantiate \ - TAO_VarSeq_Var_T< \ - ImplementationRepository::EnvironmentList, \ - ImplementationRepository::EnvironmentVariable \ - > - -# pragma instantiate \ - TAO_Seq_Var_Base_T< \ - ImplementationRepository::EnvironmentList, \ - ImplementationRepository::EnvironmentVariable \ - > - -# pragma instantiate \ - TAO_Seq_Out_T< \ - ImplementationRepository::EnvironmentList, \ - ImplementationRepository::EnvironmentList_var, \ - ImplementationRepository::EnvironmentVariable \ - > - -#if !defined (_IMPLEMENTATIONREPOSITORY_ENVIRONMENTVARIABLE__EXPLICIT_CS_) -#define _IMPLEMENTATIONREPOSITORY_ENVIRONMENTVARIABLE__EXPLICIT_CS_ - -# pragma instantiate \ - TAO_Unbounded_Sequence< \ - ImplementationRepository::EnvironmentVariable \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::EnvironmentList \ - > - -# pragma instantiate \ - TAO::Any_Basic_Impl_T< \ - ImplementationRepository::ActivationMode \ - > - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::StartupOptions> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::StartupOptions, \ - ImplementationRepository::StartupOptions_var, \ - ImplementationRepository::StartupOptions_out \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO_Var_Var_T< \ - ImplementationRepository::StartupOptions \ - > - -# pragma instantiate \ - TAO_Var_Base_T< \ - ImplementationRepository::StartupOptions \ - > - -# pragma instantiate \ - TAO_Out_T< \ - ImplementationRepository::StartupOptions, \ - ImplementationRepository::StartupOptions_var \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::StartupOptions \ - > - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::ServerInformation> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_var, \ - ImplementationRepository::ServerInformation_out \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO_Var_Var_T< \ - ImplementationRepository::ServerInformation \ - > - -# pragma instantiate \ - TAO_Var_Base_T< \ - ImplementationRepository::ServerInformation \ - > - -# pragma instantiate \ - TAO_Out_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_var \ - > - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::ServerInformation \ - > - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate TAO::Arg_Traits<ImplementationRepository::ServerInformationList> - -# pragma instantiate \ - TAO::Var_Size_Arg_Traits_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_var, \ - ImplementationRepository::ServerInformationList_out \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO_VarSeq_Var_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformation \ - > - -# pragma instantiate \ - TAO_Seq_Var_Base_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformation \ - > - -# pragma instantiate \ - TAO_Seq_Out_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_var, \ - ImplementationRepository::ServerInformation \ - > - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__EXPLICIT_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__EXPLICIT_CS_ - -# pragma instantiate \ - TAO_Unbounded_Sequence< \ - ImplementationRepository::ServerInformation \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO::Any_Dual_Impl_T< \ - ImplementationRepository::ServerInformationList \ - > - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_TMPLINST_CS_ - -# pragma instantiate \ - TAO::Arg_Traits< \ - ImplementationRepository::ServerInformationIterator \ - > - -# pragma instantiate \ - TAO::Object_Arg_Traits_T< \ - ImplementationRepository::ServerInformationIterator_ptr, \ - ImplementationRepository::ServerInformationIterator_var, \ - ImplementationRepository::ServerInformationIterator_out, \ - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO::Out_Var_Size_Argument_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_out \ - > - -# pragma instantiate \ - TAO::Objref_Traits< \ - ImplementationRepository::ServerInformationIterator \ - > - -# pragma instantiate \ - TAO_Objref_Var_T< \ - ImplementationRepository::ServerInformationIterator - > - -# pragma instantiate \ - TAO_Objref_Out_T< \ - ImplementationRepository::ServerInformationIterator - > - -# pragma instantiate \ - TAO::Narrow_Utils< \ - ImplementationRepository::ServerInformationIterator \ - > - -# pragma instantiate \ - TAO::Any_Impl_T< \ - ImplementationRepository::ServerInformationIterator \ - > - -# pragma instantiate \ - TAO::In_Var_Size_Argument_T< \ - ImplementationRepository::StartupOptions \ - > - -# pragma instantiate \ - TAO::In_Object_Argument_T< \ - ImplementationRepository::ServerObject_ptr \ - > - -# pragma instantiate \ - TAO::Out_Var_Size_Argument_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_out \ - > - -# pragma instantiate \ - TAO::Out_Object_Argument_T< \ - ImplementationRepository::ServerInformationIterator_ptr, \ - ImplementationRepository::ServerInformationIterator_out \ - > - -# pragma instantiate \ - TAO::Objref_Traits< \ - ImplementationRepository::Administration \ - > - -# pragma instantiate \ - TAO_Objref_Var_T< \ - ImplementationRepository::Administration - > - -# pragma instantiate \ - TAO_Objref_Out_T< \ - ImplementationRepository::Administration - > - -# pragma instantiate \ - TAO::Narrow_Utils< \ - ImplementationRepository::Administration \ - > - -# pragma instantiate \ - TAO::Any_Impl_T< \ - ImplementationRepository::Administration \ - > - -#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/PortableServer/ImplRepoC.h b/TAO/tao/PortableServer/ImplRepoC.h deleted file mode 100644 index 099445a71e4..00000000000 --- a/TAO/tao/PortableServer/ImplRepoC.h +++ /dev/null @@ -1,1312 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:171 - -#ifndef _TAO_IDL_IMPLREPOC_H_ -#define _TAO_IDL_IMPLREPOC_H_ - -#include /**/ "ace/pre.h" - - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "portableserver_export.h" -#include "tao/ORB.h" -#include "tao/Environment.h" -#include "tao/Object.h" -#include "tao/Sequence_T.h" -#include "tao/Objref_VarOut_T.h" -#include "tao/Seq_Var_T.h" -#include "tao/Seq_Out_T.h" -#include "tao/VarOut_T.h" -#include "tao/SystemException.h" - -#if defined (TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO TAO_PortableServer_Export - -#if defined (TAO_EXPORT_NESTED_CLASSES) -# if defined (TAO_EXPORT_NESTED_MACRO) -# undef TAO_EXPORT_NESTED_MACRO -# endif /* defined (TAO_EXPORT_NESTED_MACRO) */ -# define TAO_EXPORT_NESTED_MACRO TAO_PortableServer_Export -#endif /* TAO_EXPORT_NESTED_CLASSES */ - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option push -w-rvl -w-rch -w-ccc -w-inl -#endif /* __BORLANDC__ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root_ch.cpp:63 - -namespace TAO -{ - class Collocation_Proxy_Broker; - - template<typename T> class Narrow_Utils; - template<typename T> class AbstractBase_Narrow_Utils; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_ch.cpp:48 - -namespace ImplementationRepository -{ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:611 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__VAR_OUT_CH_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__VAR_OUT_CH_ - - class ServerObject; - typedef ServerObject *ServerObject_ptr; - - typedef - TAO_Objref_Var_T< - ServerObject - > - ServerObject_var; - - typedef - TAO_Objref_Out_T< - ServerObject - > - ServerObject_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT_CH_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT_CH_ - - class TAO_PortableServer_Export ServerObject - : public virtual CORBA::Object - { - public: - friend class TAO::Narrow_Utils<ServerObject>; - typedef ServerObject_ptr _ptr_type; - typedef ServerObject_var _var_type; - - // The static operations. - static ServerObject_ptr _duplicate (ServerObject_ptr obj); - - static ServerObject_ptr _narrow ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static ServerObject_ptr _unchecked_narrow ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - static ServerObject_ptr _nil (void) - { - return (ServerObject_ptr)0; - } - - static void _tao_any_destructor (void *); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void ping ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void shutdown ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:208 - - 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_ServerObject_Proxy_Broker_; - - protected: - // Concrete interface only. - ServerObject (void); - - // These methods travese the inheritance tree and set the - // parents piece of the given class in the right mode. - virtual void ImplementationRepository_ServerObject_setup_collocation (void); - - // Concrete non-local interface only. - ServerObject ( - IOP::IOR *ior, - TAO_ORB_Core *orb_core = 0 - ); - - // Non-local interface only. - ServerObject ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated = 0, - TAO_Abstract_ServantBase *servant = 0, - TAO_ORB_Core *orb_core = 0 - ); - - virtual ~ServerObject (void); - - private: - // Private and unimplemented for concrete interfaces. - ServerObject (const ServerObject &); - - void operator= (const ServerObject &); - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_ServerObject; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:51 - -#if !defined (_IMPLEMENTATIONREPOSITORY_ALREADYREGISTERED_CH_) -#define _IMPLEMENTATIONREPOSITORY_ALREADYREGISTERED_CH_ - - class TAO_PortableServer_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 CORBA::Exception *_alloc (void); - - virtual CORBA::Exception *_tao_duplicate (void) const; - - virtual void _raise (void) const; - - virtual void _tao_encode ( - TAO_OutputCDR & - ACE_ENV_ARG_DECL - ) const; - - virtual void _tao_decode ( - TAO_InputCDR & - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:125 - - virtual CORBA::TypeCode_ptr _type (void) const; - }; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_AlreadyRegistered; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:51 - -#if !defined (_IMPLEMENTATIONREPOSITORY_CANNOTACTIVATE_CH_) -#define _IMPLEMENTATIONREPOSITORY_CANNOTACTIVATE_CH_ - - class TAO_PortableServer_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 CORBA::Exception *_alloc (void); - - virtual CORBA::Exception *_tao_duplicate (void) const; - - virtual void _raise (void) const; - - virtual void _tao_encode ( - TAO_OutputCDR & - ACE_ENV_ARG_DECL - ) const; - - virtual void _tao_decode ( - TAO_InputCDR & - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ctor.cpp:66 - - CannotActivate ( - const char * _tao_reason - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:125 - - virtual CORBA::TypeCode_ptr _type (void) const; - }; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_CannotActivate; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:51 - -#if !defined (_IMPLEMENTATIONREPOSITORY_NOTFOUND_CH_) -#define _IMPLEMENTATIONREPOSITORY_NOTFOUND_CH_ - - class TAO_PortableServer_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 CORBA::Exception *_alloc (void); - - virtual CORBA::Exception *_tao_duplicate (void) const; - - virtual void _raise (void) const; - - virtual void _tao_encode ( - TAO_OutputCDR & - ACE_ENV_ARG_DECL - ) const; - - virtual void _tao_decode ( - TAO_InputCDR & - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:125 - - virtual CORBA::TypeCode_ptr _type (void) const; - }; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_NotFound; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/structure_ch.cpp:52 - - struct TAO_PortableServer_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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_EnvironmentVariable; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typedef/typedef_ch.cpp:376 - - typedef char * Address; - typedef CORBA::String_var Address_var; - typedef CORBA::String_out Address_out; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_Address; - - // TAO_IDL - Generated from - // E:\doc_cvs\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, - EnvironmentList_var, - EnvironmentVariable - > - EnvironmentList_out; - - class TAO_PortableServer_Export EnvironmentList - : public - TAO_Unbounded_Sequence< - EnvironmentVariable - > - { - public: - EnvironmentList (void); - EnvironmentList (CORBA::ULong max); - EnvironmentList ( - CORBA::ULong max, - CORBA::ULong length, - 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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_EnvironmentList; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_enum/enum_ch.cpp:57 - - enum ActivationMode - { - NORMAL, - MANUAL, - PER_CLIENT, - AUTO_START - }; - - typedef ActivationMode &ActivationMode_out; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_ActivationMode; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/structure_ch.cpp:52 - - struct TAO_PortableServer_Export StartupOptions - { - typedef StartupOptions_var _var_type; - - static void _tao_any_destructor (void *); - TAO_String_Manager command_line; - ImplementationRepository::EnvironmentList environment; - TAO_String_Manager working_directory; - ImplementationRepository::ActivationMode activation; - TAO_String_Manager activator; - }; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_StartupOptions; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/structure_ch.cpp:52 - - struct TAO_PortableServer_Export ServerInformation - { - typedef ServerInformation_var _var_type; - - static void _tao_any_destructor (void *); - TAO_String_Manager logical_server; - TAO_String_Manager server; - ImplementationRepository::StartupOptions startup; - TAO_String_Manager location; - }; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_ServerInformation; - - // TAO_IDL - Generated from - // E:\doc_cvs\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, - ServerInformationList_var, - ServerInformation - > - ServerInformationList_out; - - class TAO_PortableServer_Export ServerInformationList - : public - TAO_Unbounded_Sequence< - ServerInformation - > - { - public: - ServerInformationList (void); - ServerInformationList (CORBA::ULong max); - ServerInformationList ( - CORBA::ULong max, - CORBA::ULong length, - 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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_ServerInformationList; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:611 - -#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 - > - ServerInformationIterator_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:611 - -#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 - > - Administration_out; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION_CH_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION_CH_ - - class TAO_PortableServer_Export Administration - : public virtual CORBA::Object - { - public: - 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 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 (Administration_ptr)0; - } - - static void _tao_any_destructor (void *); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual char * activate_server_with_startup ( - const char * server, - ::CORBA::Long check_startup - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void reregister_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 - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void server_is_running ( - const char * server, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\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, - ::ImplementationRepository::ServerInformationIterator_out server_iterator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual void shutdown_repo ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46 - - virtual char * find_ior ( - const char * object_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:208 - - 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, - CORBA::Boolean _tao_collocated = 0, - 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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_Administration; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:54 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR_CH_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR_CH_ - - class TAO_PortableServer_Export ServerInformationIterator - : public virtual CORBA::Object - { - public: - 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 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 (ServerInformationIterator_ptr)0; - } - - static void _tao_any_destructor (void *); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 server_list - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:208 - - 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, - CORBA::Boolean _tao_collocated = 0, - 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 - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_typecode/typecode_decl.cpp:44 - - TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_ServerInformationIterator; - -// TAO_IDL - Generated from -// E:\doc_cvs\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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:120 - -extern TAO_PortableServer_Export -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ); - -extern TAO_PortableServer_Export -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ); - -extern TAO_PortableServer_Export -TAO::Collocation_Proxy_Broker * -(*ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer) ( - CORBA::Object_ptr obj - ); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_traits.cpp:59 - -// Traits specializations. -namespace TAO -{ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__TRAITS_CH_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__TRAITS_CH_ - - ACE_TEMPLATE_SPECIALIZATION - struct TAO_PortableServer_Export Objref_Traits<ImplementationRepository::ServerObject> - { - static ImplementationRepository::ServerObject_ptr duplicate ( - ImplementationRepository::ServerObject_ptr - ); - static void release ( - ImplementationRepository::ServerObject_ptr - ); - static ImplementationRepository::ServerObject_ptr nil (void); - static CORBA::Boolean marshal ( - ImplementationRepository::ServerObject_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__TRAITS_CH_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__TRAITS_CH_ - - ACE_TEMPLATE_SPECIALIZATION - struct TAO_PortableServer_Export Objref_Traits<ImplementationRepository::ServerInformationIterator> - { - static ImplementationRepository::ServerInformationIterator_ptr duplicate ( - ImplementationRepository::ServerInformationIterator_ptr - ); - static void release ( - ImplementationRepository::ServerInformationIterator_ptr - ); - static ImplementationRepository::ServerInformationIterator_ptr nil (void); - static CORBA::Boolean marshal ( - ImplementationRepository::ServerInformationIterator_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION__TRAITS_CH_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION__TRAITS_CH_ - - ACE_TEMPLATE_SPECIALIZATION - struct TAO_PortableServer_Export Objref_Traits<ImplementationRepository::Administration> - { - static ImplementationRepository::Administration_ptr duplicate ( - ImplementationRepository::Administration_ptr - ); - static void release ( - ImplementationRepository::Administration_ptr - ); - static ImplementationRepository::Administration_ptr nil (void); - static CORBA::Boolean marshal ( - ImplementationRepository::Administration_ptr p, - TAO_OutputCDR & cdr - ); - }; - -#endif /* end #if !defined */ -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerObject_ptr); // copying -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerObject_ptr *); // non-copying -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ServerObject_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::AlreadyRegistered &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::AlreadyRegistered*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::AlreadyRegistered *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::AlreadyRegistered *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::CannotActivate &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::CannotActivate*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::CannotActivate *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::CannotActivate *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::NotFound &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::NotFound*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::NotFound *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::NotFound *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::EnvironmentVariable &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::EnvironmentVariable*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::EnvironmentVariable *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::EnvironmentVariable *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::EnvironmentList &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::EnvironmentList*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::EnvironmentList *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::EnvironmentList *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_enum/any_op_ch.cpp:51 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ActivationMode); -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ActivationMode &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::StartupOptions &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::StartupOptions*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::StartupOptions *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::StartupOptions *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::ServerInformation &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformation*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ServerInformation *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::ServerInformation *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_sequence/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, const ImplementationRepository::ServerInformationList &); // copying version -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformationList*); // noncopying version -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ServerInformationList *&); // deprecated -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, const ImplementationRepository::ServerInformationList *&); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::Administration_ptr); // copying -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::Administration_ptr *); // non-copying -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::Administration_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/any_op_ch.cpp:52 - -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformationIterator_ptr); // copying -TAO_PortableServer_Export void operator<<= (CORBA::Any &, ImplementationRepository::ServerInformationIterator_ptr *); // non-copying -TAO_PortableServer_Export CORBA::Boolean operator>>= (const CORBA::Any &, ImplementationRepository::ServerInformationIterator_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_ch.cpp:55 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::ServerObject_ptr ); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ServerObject_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/cdr_op_ch.cpp:52 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::AlreadyRegistered &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::AlreadyRegistered &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/cdr_op_ch.cpp:52 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::CannotActivate &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::CannotActivate &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/cdr_op_ch.cpp:52 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::NotFound &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::NotFound &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/cdr_op_ch.cpp:54 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::EnvironmentVariable &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::EnvironmentVariable &); - -// TAO_IDL - Generated from -// E:\doc_cvs\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_ - -TAO_PortableServer_Export CORBA::Boolean operator<< ( - TAO_OutputCDR &, - const ImplementationRepository::EnvironmentList & - ); -TAO_PortableServer_Export CORBA::Boolean operator>> ( - TAO_InputCDR &, - ImplementationRepository::EnvironmentList & - ); - -#endif /* _TAO_CDR_OP_ImplementationRepository_EnvironmentList_H_ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_enum/cdr_op_ch.cpp:50 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::ActivationMode &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ActivationMode &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/cdr_op_ch.cpp:54 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::StartupOptions &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::StartupOptions &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_structure/cdr_op_ch.cpp:54 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::ServerInformation &); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ServerInformation &); - -// TAO_IDL - Generated from -// E:\doc_cvs\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_ - -TAO_PortableServer_Export CORBA::Boolean operator<< ( - TAO_OutputCDR &, - const ImplementationRepository::ServerInformationList & - ); -TAO_PortableServer_Export CORBA::Boolean operator>> ( - TAO_InputCDR &, - ImplementationRepository::ServerInformationList & - ); - -#endif /* _TAO_CDR_OP_ImplementationRepository_ServerInformationList_H_ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_ch.cpp:55 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::Administration_ptr ); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::Administration_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/cdr_op_ch.cpp:55 - -TAO_PortableServer_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const ImplementationRepository::ServerInformationIterator_ptr ); -TAO_PortableServer_Export CORBA::Boolean operator>> (TAO_InputCDR &, ImplementationRepository::ServerInformationIterator_ptr &); - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:976 - -#if defined (__ACE_INLINE__) -#include "ImplRepoC.inl" -#endif /* defined INLINE */ - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option pop -#endif /* __BORLANDC__ */ - -#include /**/ "ace/post.h" - -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/ImplRepoC.inl b/TAO/tao/PortableServer/ImplRepoC.inl deleted file mode 100644 index 36cc19fe639..00000000000 --- a/TAO/tao/PortableServer/ImplRepoC.inl +++ /dev/null @@ -1,136 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:70 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT___CI_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT___CI_ - -ACE_INLINE -ImplementationRepository::ServerObject::ServerObject ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated, - TAO_Abstract_ServantBase *servant, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) ( - objref, - _tao_collocated, - servant, - oc - ), - the_TAO_ServerObject_Proxy_Broker_ (0) -{ - this->ImplementationRepository_ServerObject_setup_collocation (); -} - -ACE_INLINE -ImplementationRepository::ServerObject::ServerObject ( - IOP::IOR *ior, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) (ior, oc), - the_TAO_ServerObject_Proxy_Broker_ (0) -{ -} - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:70 - -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION___CI_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION___CI_ - -ACE_INLINE -ImplementationRepository::Administration::Administration ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated, - TAO_Abstract_ServantBase *servant, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) ( - objref, - _tao_collocated, - servant, - oc - ), - the_TAO_Administration_Proxy_Broker_ (0) -{ - this->ImplementationRepository_Administration_setup_collocation (); -} - -ACE_INLINE -ImplementationRepository::Administration::Administration ( - IOP::IOR *ior, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) (ior, oc), - the_TAO_Administration_Proxy_Broker_ (0) -{ -} - -#endif /* end #if !defined */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:70 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR___CI_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR___CI_ - -ACE_INLINE -ImplementationRepository::ServerInformationIterator::ServerInformationIterator ( - TAO_Stub *objref, - CORBA::Boolean _tao_collocated, - TAO_Abstract_ServantBase *servant, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) ( - objref, - _tao_collocated, - servant, - oc - ), - the_TAO_ServerInformationIterator_Proxy_Broker_ (0) -{ - this->ImplementationRepository_ServerInformationIterator_setup_collocation (); -} - -ACE_INLINE -ImplementationRepository::ServerInformationIterator::ServerInformationIterator ( - IOP::IOR *ior, - TAO_ORB_Core *oc - ) - : ACE_NESTED_CLASS (CORBA, Object) (ior, oc), - the_TAO_ServerInformationIterator_Proxy_Broker_ (0) -{ -} - -#endif /* end #if !defined */ - diff --git a/TAO/tao/PortableServer/ImplRepoS.cpp b/TAO/tao/PortableServer/ImplRepoS.cpp deleted file mode 100644 index ebc7d0a163e..00000000000 --- a/TAO/tao/PortableServer/ImplRepoS.cpp +++ /dev/null @@ -1,7464 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:629 - -#ifndef _TAO_IDL_IMPLREPOS_CPP_ -#define _TAO_IDL_IMPLREPOS_CPP_ - - -#include "ImplRepoS.h" -#include "tao/PortableServer/Object_Adapter.h" -#include "tao/PortableServer/Operation_Table.h" -#include "tao/TAO_Server_Request.h" -#include "tao/ORB_Core.h" -#include "tao/Profile.h" -#include "tao/Stub.h" -#include "tao/IFR_Client_Adapter.h" -#include "tao/Object_T.h" -#include "tao/Typecode.h" -#include "tao/DynamicC.h" -#include "tao/CDR.h" -#include "tao/Basic_Arguments.h" -#include "tao/Object_Argument_T.h" -#include "tao/Special_Basic_Arguments.h" -#include "tao/UB_String_Arguments.h" -#include "tao/Var_Size_Argument_T.h" -#include "tao/PortableInterceptor.h" -#if TAO_HAS_INTERCEPTORS == 1 -#include "tao/PortableServer/PICurrent_Guard.h" -#include "tao/PortableServer/ServerRequestInfo.h" -#include "tao/PortableServer/ServerInterceptorAdapter.h" -#include "tao/RequestInfo_Util.h" -#endif /* TAO_HAS_INTERCEPTORS == 1 */ - -#include "ace/Dynamic_Service.h" -#include "ace/Malloc_Allocator.h" -#include "ace/config-all.h" - -#if defined (__BORLANDC__) -#pragma option -w-rvl -w-rch -w-ccc -w-aus -#endif /* __BORLANDC__ */ - -#if !defined (__ACE_INLINE__) -#include "ImplRepoS.inl" -#endif /* !defined INLINE */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:64 - -// Arg traits specializations. -namespace TAO -{ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerObject> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - TAO::Objref_Traits<ImplementationRepository::ServerObject> - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::StartupOptions> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:618 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformation> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - > - { - }; - -#endif /* end #if !defined */ - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:379 - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationList> - : public - Var_Size_Arg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - > - { - }; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__ARG_TRAITS_SS_ - - ACE_TEMPLATE_SPECIALIZATION - class TAO_PortableServer_Export Arg_Traits<ImplementationRepository::ServerInformationIterator> - : public - Object_Arg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - TAO::Objref_Traits<ImplementationRepository::ServerInformationIterator> - > - { - }; - -#endif /* end #if !defined */ -} - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1536 - -class TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable - : public TAO_Perfect_Hash_OpTable -{ -private: - unsigned int hash (const char *str, unsigned int len); - -public: - const TAO_operation_db_entry * lookup (const char *str, unsigned int len); -}; - -/* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0,0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable -N lookup */ -unsigned int -TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) -{ - static const unsigned char asso_values[] = - { -#if defined (ACE_MVS) - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, - 16, 16, 16, 5, 16, 0, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, - 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 0, 0, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, -#else - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 0, 16, 0, 16, 16, - 16, 5, 16, 0, 16, 16, 16, 16, 16, 16, - 0, 16, 0, 16, 16, 0, 0, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, -#endif /* ACE_MVS */ - }; - return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; -} - -const class TAO_operation_db_entry * -TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len) -{ - enum - { - TOTAL_KEYWORDS = 6, - MIN_WORD_LENGTH = 4, - MAX_WORD_LENGTH = 13, - MIN_HASH_VALUE = 4, - MAX_HASH_VALUE = 15, - HASH_VALUE_RANGE = 12, - DUPLICATES = 0, - WORDLIST_SIZE = 10 - }; - - static const class TAO_operation_db_entry wordlist[] = - { - {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"ping", &POA_ImplementationRepository::ServerObject::ping_skel, &POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::ping, &POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::ping}, - {"_is_a", &POA_ImplementationRepository::ServerObject::_is_a_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"shutdown", &POA_ImplementationRepository::ServerObject::shutdown_skel, &POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::shutdown, &POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::shutdown}, - {"",0,0,0}, - {"_component", &POA_ImplementationRepository::ServerObject::_component_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"_non_existent", &POA_ImplementationRepository::ServerObject::_non_existent_skel, 0, 0}, - {"",0,0,0}, - {"_interface", &POA_ImplementationRepository::ServerObject::_interface_skel, 0, 0}, - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) - { - const char *s = wordlist[key].opname_; - - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) - return &wordlist[key]; - } - } - return 0; -} - -static TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable tao_ImplementationRepository_ServerObject_optable; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interceptors_ss.cpp:53 - -#if (TAO_HAS_INTERCEPTORS == 1) - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::ServerObject *tao_impl - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping & - ); - -private: - POA_ImplementationRepository::ServerObject *_tao_impl; - -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::ServerObject *tao_impl - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return parameter_list; -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::ServerObject *tao_impl - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown & - ); - -private: - POA_ImplementationRepository::ServerObject *_tao_impl; - -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::ServerObject *tao_impl - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return parameter_list; -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -#endif /* TAO_HAS_INTERCEPTORS */ - -/////////////////////////////////////////////////////////////////////// -// Strategized Proxy Broker Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/strategized_proxy_broker_ss.cpp:40 - -// Factory function Implementation. -POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker * -POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::the_TAO_ServerObject_Strategized_Proxy_Broker (void) -{ - static POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker - strategized_proxy_broker; - - return &strategized_proxy_broker; -} - -POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::_TAO_ServerObject_Strategized_Proxy_Broker (void) -{ -} - -POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::~_TAO_ServerObject_Strategized_Proxy_Broker (void) -{ -} - -TAO::Collocation_Strategy -POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::get_strategy ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - TAO::Collocation_Strategy strategy = - TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); - - return strategy; -} - -void -POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::dispatch ( - CORBA::Object_ptr obj, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::Exception)) -{ - TAO_Object_Adapter::Servant_Upcall servant_upcall ( - obj->_stubobj ()->servant_orb_var ()->orb_core () - ); - - TAO_Collocated_Skeleton collocated_skel; - TAO_Abstract_ServantBase *servant = 0; - - if (strategy == TAO::TAO_CS_THRU_POA_STRATEGY) - { - servant_upcall.prepare_for_upcall ( - obj->_stubobj ()->object_key (), - op, - forward_obj - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - servant_upcall.pre_invoke_collocated_request ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; - - servant = servant_upcall.servant (); - } - else - { - servant = obj->_servant (); - } - - int status = servant->_find (op, - collocated_skel, - strategy, - op_len); - - if (status == -1) - { - ACE_THROW (CORBA::BAD_OPERATION ()); - } - - ACE_TRY - { - collocated_skel (servant, - args, - num_args - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } -#if (TAO_HAS_MINIMUM_CORBA == 0) - ACE_CATCH (PortableServer::ForwardRequest, forward_request) - { - forward_obj = - CORBA::Object::_duplicate (forward_request.forward_reference.in ()); - return; - } -#else - ACE_CATCHANY - { - ACE_UNUSED_ARG (forward_obj); - ACE_RE_THROW; - } -#endif /* TAO_HAS_MINIMUM_CORBA */ - ACE_ENDTRY; - ACE_CHECK; -} - -// -// End Strategized Proxy Broker Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:648 - -TAO::Collocation_Proxy_Broker * -ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function (CORBA::Object_ptr) -{ - return - ::POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::the_TAO_ServerObject_Strategized_Proxy_Broker (); -} - -int -ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer (size_t) -{ - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer = - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function; - - return 0; -} - -static int -ImplementationRepository__TAO_ServerObject_Proxy_Broker_Stub_Factory_Initializer_Scarecrow = - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer ( - reinterpret_cast< - size_t> ( - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer - ) - ); - - -/////////////////////////////////////////////////////////////////////// -// ThruPOA Proxy Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_ss.cpp:37 - -POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::_TAO_ServerObject_ThruPOA_Proxy_Impl (void) -{} - -// ThruPOA Implementation of the IDL interface methods - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::ping ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::ServerObject_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerObject:1.0" - ) - )->ping ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::shutdown ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::ServerObject_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerObject:1.0" - ) - )->shutdown ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End ThruPOA Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////// -// Direct Proxy Implementation -// - -POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::_TAO_ServerObject_Direct_Proxy_Impl (void) -{} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::ping ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::ServerObject_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerObject:1.0" - ) - )->ping ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::shutdown ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::ServerObject_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerObject:1.0" - ) - )->shutdown ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End Direct Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:97 - -POA_ImplementationRepository::ServerObject::ServerObject (void) -{ - this->optable_ = &tao_ImplementationRepository_ServerObject_optable; -} - -POA_ImplementationRepository::ServerObject::ServerObject (const ServerObject& rhs) - : TAO_Abstract_ServantBase (rhs), - TAO_ServantBase (rhs) -{ -} - -POA_ImplementationRepository::ServerObject::~ServerObject (void) -{ -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::ServerObject::ping_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerObject *_tao_impl = - static_cast< - POA_ImplementationRepository::ServerObject *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->ping ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::ServerObject::shutdown_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerObject *_tao_impl = - static_cast< - POA_ImplementationRepository::ServerObject *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->shutdown ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:162 - -void POA_ImplementationRepository::ServerObject::_is_a_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); - - POA_ImplementationRepository::ServerObject *_tao_impl = - (POA_ImplementationRepository::ServerObject *) _tao_servant; - - CORBA::Boolean _tao_retval = 0; - CORBA::String_var value; - - if (!(_tao_in >> value.out ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } - - _tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::ServerObject::_non_existent_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerObject *_tao_impl = - (POA_ImplementationRepository::ServerObject *) _tao_servant; - - CORBA::Boolean _tao_retval = - _tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::ServerObject::_interface_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_IFR_Client_Adapter *_tao_adapter = - ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( - TAO_ORB_Core::ifr_client_adapter_name () - ); - - if (_tao_adapter == 0) - { - ACE_THROW (CORBA::INTF_REPOS ()); - } - - POA_ImplementationRepository::ServerObject *_tao_impl = - (POA_ImplementationRepository::ServerObject *) _tao_servant; - - CORBA::InterfaceDef_ptr _tao_retval = - _tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - CORBA::Boolean _tao_result = - _tao_adapter->interfacedef_cdr_insert ( - _tao_out, - _tao_retval - ); - - _tao_adapter->dispose (_tao_retval); - - if (_tao_result == 0) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::ServerObject::_component_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_object_reference, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerObject *_tao_impl = - (POA_ImplementationRepository::ServerObject *) _tao_object_reference; - - CORBA::Object_var _tao_retval = - _tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << _tao_retval.in ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -CORBA::Boolean POA_ImplementationRepository::ServerObject::_is_a ( - const char* value - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/ServerObject:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; - } - else - { - return 0; - } -} - -void* POA_ImplementationRepository::ServerObject::_downcast ( - const char* logical_type_id - ) -{ - if (ACE_OS::strcmp (logical_type_id, - "IDL:ImplementationRepository/ServerObject:1.0") == 0) - { - return static_cast<POA_ImplementationRepository::ServerObject_ptr> (this); - } - - if (ACE_OS::strcmp (logical_type_id, - "IDL:omg.org/CORBA/Object:1.0") == 0) - { - return static_cast<PortableServer::Servant> (this); - } - - return 0; -} - -const char* POA_ImplementationRepository::ServerObject::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/ServerObject:1.0"; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:584 - -void POA_ImplementationRepository::ServerObject::_dispatch ( - TAO_ServerRequest &req, - void *servant_upcall - ACE_ENV_ARG_DECL - ) -{ - this->synchronous_upcall_dispatch (req, - servant_upcall, - this - ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:526 - -ImplementationRepository::ServerObject * -POA_ImplementationRepository::ServerObject::_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 (); - - if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ()) - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 1, this), - 0 - ); - } - else - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 0, this), - 0 - ); - } - - CORBA::Object_var obj = tmp; - (void) safe_stub.release (); - - typedef ::ImplementationRepository::ServerObject STUB_SCOPED_NAME; - return - TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow ( - obj.in (), - ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1536 - -class TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable - : public TAO_Perfect_Hash_OpTable -{ -private: - unsigned int hash (const char *str, unsigned int len); - -public: - const TAO_operation_db_entry * lookup (const char *str, unsigned int len); -}; - -/* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,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) - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 4, - 34, 34, 0, 0, 0, 0, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 5, 34, 5, - 0, 0, 34, 0, 34, 34, 34, 34, 34, 34, - 34, 34, 5, 15, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, -#else - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 34, 4, 34, 34, - 0, 0, 0, 0, 34, 34, 34, 34, 5, 34, - 5, 0, 0, 34, 0, 5, 15, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, -#endif /* ACE_MVS */ - }; - return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; -} - -const class TAO_operation_db_entry * -TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len) -{ - enum - { - TOTAL_KEYWORDS = 16, - MIN_WORD_LENGTH = 4, - MAX_WORD_LENGTH = 28, - MIN_HASH_VALUE = 4, - MAX_HASH_VALUE = 33, - HASH_VALUE_RANGE = 30, - DUPLICATES = 0, - WORDLIST_SIZE = 20 - }; - - static const class TAO_operation_db_entry wordlist[] = - { - {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"find", &POA_ImplementationRepository::Administration::find_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find}, - {"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"find_ior", &POA_ImplementationRepository::Administration::find_ior_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find_ior, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find_ior}, - {"_is_a", &POA_ImplementationRepository::Administration::_is_a_skel, 0, 0}, - {"_interface", &POA_ImplementationRepository::Administration::_interface_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"remove_server", &POA_ImplementationRepository::Administration::remove_server_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::remove_server, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::remove_server}, - {"",0,0,0}, - {"register_server", &POA_ImplementationRepository::Administration::register_server_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::register_server, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::register_server}, - {"",0,0,0}, - {"reregister_server", &POA_ImplementationRepository::Administration::reregister_server_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::reregister_server, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::reregister_server}, - {"shutdown_repo", &POA_ImplementationRepository::Administration::shutdown_repo_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_repo, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_repo}, - {"activate_server", &POA_ImplementationRepository::Administration::activate_server_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server}, - {"shutdown_server", &POA_ImplementationRepository::Administration::shutdown_server_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_server, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_server}, - {"",0,0,0}, - {"server_is_running", &POA_ImplementationRepository::Administration::server_is_running_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_running, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_running}, - {"",0,0,0}, - {"list", &POA_ImplementationRepository::Administration::list_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::list, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list}, - {"_component", &POA_ImplementationRepository::Administration::_component_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"_non_existent", &POA_ImplementationRepository::Administration::_non_existent_skel, 0, 0}, - {"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"activate_server_with_startup", &POA_ImplementationRepository::Administration::activate_server_with_startup_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server_with_startup, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server_with_startup}, - {"server_is_shutting_down", &POA_ImplementationRepository::Administration::server_is_shutting_down_skel, &POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_shutting_down, &POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_shutting_down}, - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) - { - const char *s = wordlist[key].opname_; - - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) - return &wordlist[key]; - } - } - return 0; -} - -static TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable tao_ImplementationRepository_Administration_optable; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interceptors_ss.cpp:53 - -#if (TAO_HAS_INTERCEPTORS == 1) - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_activate_server_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound, - ImplementationRepository::_tc_CannotActivate - }; - - exception_list->length (2); - for (CORBA::ULong i = 0; i < 2; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_activate_server_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const ::CORBA::Long & check_startup - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void result (char * result); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; - const ::CORBA::Long & check_startup_; - char * _result; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const ::CORBA::Long & check_startup - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - check_startup_ (check_startup) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= check_startup_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_activate_server_with_startup_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound, - ImplementationRepository::_tc_CannotActivate - }; - - exception_list->length (2); - for (CORBA::ULong i = 0; i < 2; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_activate_server_with_startup_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 0; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Any_var safe_result_any = result_any; - - (*result_any) <<= this->_result; - - return safe_result_any._retn (); -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -void -TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup::result (char * result) -{ - // Update the result. - this->_result = result; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; - const ::ImplementationRepository::StartupOptions & options_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - options_ (options) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= this->options_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_register_server_exceptiondata[] = - { - ImplementationRepository::_tc_AlreadyRegistered, - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (2); - for (CORBA::ULong i = 0; i < 2; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_register_server_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; - const ::ImplementationRepository::StartupOptions & options_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const ::ImplementationRepository::StartupOptions & options - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - options_ (options) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (2); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= this->options_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_reregister_server_exceptiondata[] = - { - ImplementationRepository::_tc_AlreadyRegistered, - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (2); - for (CORBA::ULong i = 0; i < 2; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_reregister_server_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_remove_server_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_remove_server_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; - const char * addr_; - ::ImplementationRepository::ServerObject_ptr server_object_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server), - addr_ (addr), - server_object_ (server_object) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (3); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= addr_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - (*parameter_list)[len].argument <<= this->server_object_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_server_is_running_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_server_is_running_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_find : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_find ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_find ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_find & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_find & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * server_; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_find::TAO_ServerRequestInfo_ImplementationRepository_Administration_find ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * server - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - server_ (server) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= server_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_find_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_find_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_find::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_list : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_list ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const ::CORBA::ULong & how_many - - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_list ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_list & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_list & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const ::CORBA::ULong & how_many_; - -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_list::TAO_ServerRequestInfo_ImplementationRepository_Administration_list ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const ::CORBA::ULong & how_many - - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - how_many_ (how_many) - -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_list::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= how_many_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_list::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_list::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_list::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_list::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return parameter_list; -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * object_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void result (char * result); - -private: - TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior & - ); - -private: - POA_ImplementationRepository::Administration *_tao_impl; - - const char * object_name_; - char * _result; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::Administration *tao_impl, - const char * object_name - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - object_name_ (object_name) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= object_name_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ExceptionList_var safe_exception_list = exception_list; - - static CORBA::TypeCode_ptr _tao_ImplementationRepository_Administration_find_ior_exceptiondata[] = - { - ImplementationRepository::_tc_NotFound - }; - - exception_list->length (1); - for (CORBA::ULong i = 0; i < 1; ++i) - { - CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_find_ior_exceptiondata[i]; - TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1); - (*exception_list)[i] = tcp_object; - } - - return safe_exception_list._retn (); -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 0; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Any_var safe_result_any = result_any; - - (*result_any) <<= this->_result; - - return safe_result_any._retn (); -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -void -TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior::result (char * result) -{ - // Update the result. - this->_result = result; -} - -#endif /* TAO_HAS_INTERCEPTORS */ - -/////////////////////////////////////////////////////////////////////// -// Strategized Proxy Broker Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\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 * -POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::the_TAO_Administration_Strategized_Proxy_Broker (void) -{ - static POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker - strategized_proxy_broker; - - return &strategized_proxy_broker; -} - -POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::_TAO_Administration_Strategized_Proxy_Broker (void) -{ -} - -POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::~_TAO_Administration_Strategized_Proxy_Broker (void) -{ -} - -TAO::Collocation_Strategy -POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::get_strategy ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - TAO::Collocation_Strategy strategy = - TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); - - return strategy; -} - -void -POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::dispatch ( - CORBA::Object_ptr obj, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::Exception)) -{ - TAO_Object_Adapter::Servant_Upcall servant_upcall ( - obj->_stubobj ()->servant_orb_var ()->orb_core () - ); - - TAO_Collocated_Skeleton collocated_skel; - TAO_Abstract_ServantBase *servant = 0; - - if (strategy == TAO::TAO_CS_THRU_POA_STRATEGY) - { - servant_upcall.prepare_for_upcall ( - obj->_stubobj ()->object_key (), - op, - forward_obj - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - servant_upcall.pre_invoke_collocated_request ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; - - servant = servant_upcall.servant (); - } - else - { - servant = obj->_servant (); - } - - int status = servant->_find (op, - collocated_skel, - strategy, - op_len); - - if (status == -1) - { - ACE_THROW (CORBA::BAD_OPERATION ()); - } - - ACE_TRY - { - collocated_skel (servant, - args, - num_args - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } -#if (TAO_HAS_MINIMUM_CORBA == 0) - ACE_CATCH (PortableServer::ForwardRequest, forward_request) - { - forward_obj = - CORBA::Object::_duplicate (forward_request.forward_reference.in ()); - return; - } -#else - ACE_CATCHANY - { - ACE_UNUSED_ARG (forward_obj); - ACE_RE_THROW; - } -#endif /* TAO_HAS_MINIMUM_CORBA */ - ACE_ENDTRY; - ACE_CHECK; -} - -// -// End Strategized Proxy Broker Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:648 - -TAO::Collocation_Proxy_Broker * -ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function (CORBA::Object_ptr) -{ - return - ::POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::the_TAO_Administration_Strategized_Proxy_Broker (); -} - -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; - - return 0; -} - -static int -ImplementationRepository__TAO_Administration_Proxy_Broker_Stub_Factory_Initializer_Scarecrow = - ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_Initializer ( - reinterpret_cast< - size_t> ( - ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_Initializer - ) - ); - - -/////////////////////////////////////////////////////////////////////// -// ThruPOA Proxy Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_ss.cpp:37 - -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::_TAO_Administration_ThruPOA_Proxy_Impl (void) -{} - -// ThruPOA Implementation of the IDL interface methods - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->activate_server ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - ((TAO::Arg_Traits< ::CORBA::Char *>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->activate_server_with_startup ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< CORBA::Long>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_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 - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->reregister_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 -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->remove_server ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->shutdown_server ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->server_is_running ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Address>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerObject>::in_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->server_is_shutting_down ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->find ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformation>::out_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->list ( - ((TAO::Arg_Traits< CORBA::ULong>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformationList>::out_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformationIterator>::out_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->shutdown_repo ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - ((TAO::Arg_Traits< ::CORBA::Char *>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->find_ior ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End ThruPOA Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////// -// Direct Proxy Implementation -// - -POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::_TAO_Administration_Direct_Proxy_Impl (void) -{} - -// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->activate_server ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) -{ - ((TAO::Arg_Traits< ::CORBA::Char *>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->activate_server_with_startup ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< CORBA::Long>::in_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->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 -// E:\doc_cvs\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 ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->reregister_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 -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->remove_server ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->shutdown_server ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->server_is_running ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::Address>::in_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerObject>::in_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->server_is_shutting_down ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->find ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformation>::out_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->list ( - ((TAO::Arg_Traits< CORBA::ULong>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformationList>::out_arg_val *) args[2])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformationIterator>::out_arg_val *) args[3])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->shutdown_repo ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 - -void -POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) -{ - ((TAO::Arg_Traits< ::CORBA::Char *>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::Administration_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/Administration:1.0" - ) - )->find_ior ( - ((TAO::Arg_Traits< ::CORBA::Char *>::in_arg_val *) args[1])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End Direct Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:97 - -POA_ImplementationRepository::Administration::Administration (void) -{ - this->optable_ = &tao_ImplementationRepository_Administration_optable; -} - -POA_ImplementationRepository::Administration::Administration (const Administration& rhs) - : TAO_Abstract_ServantBase (rhs), - TAO_ServantBase (rhs) -{ -} - -POA_ImplementationRepository::Administration::~Administration (void) -{ -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::activate_server_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - - if (!( - (_tao_in >> server.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->activate_server ( - server.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::activate_server_with_startup_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - CORBA::String_var _tao_retval; - ::CORBA::String_var server; - ::CORBA::Long check_startup; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> check_startup) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server_with_startup _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - check_startup - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - _tao_retval = - _tao_impl->activate_server_with_startup ( - server.in (), - - check_startup - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - char * _tao_retval_info = _tao_retval._retn (); - _tao_ri.result (_tao_retval_info); - _tao_retval = _tao_retval_info; - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << _tao_retval.in ()) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::register_server_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::ImplementationRepository::StartupOptions options; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> options) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - options - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->register_server ( - server.in (), - - options - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::reregister_server_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::ImplementationRepository::StartupOptions options; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> options) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - options - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->reregister_server ( - server.in (), - - options - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::remove_server_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - - if (!( - (_tao_in >> server.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->remove_server ( - server.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::shutdown_server_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - - if (!( - (_tao_in >> server.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->shutdown_server ( - server.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::server_is_running_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - ::CORBA::String_var addr; - ::ImplementationRepository::ServerObject_var server_object; - - if (!( - (_tao_in >> server.out ()) && - (_tao_in >> addr.out ()) && - (_tao_in >> server_object.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in (), - - addr.in (), - - server_object.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->server_is_running ( - server.in (), - - addr.in (), - - server_object.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::server_is_shutting_down_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - ::CORBA::String_var server; - - if (!( - (_tao_in >> server.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->server_is_shutting_down ( - server.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::find_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - - ::CORBA::String_var server; - ::ImplementationRepository::ServerInformation_var info; - - if (!( - (_tao_in >> server.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_find _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - server.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->find ( - server.in (), - - info.out () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << info.in ()) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::list_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - - ::CORBA::ULong how_many; - ::ImplementationRepository::ServerInformationList_var server_list; - - ::ImplementationRepository::ServerInformationIterator_var server_iterator; - - if (!( - (_tao_in >> how_many) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_list _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - how_many - - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->list ( - how_many, - - server_list.out (), - - server_iterator.out () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << server_list.in ()) && - (_tao_out << server_iterator.in ()) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::shutdown_repo_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_repo _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->shutdown_repo ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::Administration::find_ior_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::Administration *_tao_impl = - static_cast< - POA_ImplementationRepository::Administration *> ( - _tao_servant - ); - CORBA::String_var _tao_retval; - ::CORBA::String_var object_name; - - if (!( - (_tao_in >> object_name.out ()) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_Administration_find_ior _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - object_name.in () - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - _tao_retval = - _tao_impl->find_ior ( - object_name.in () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - char * _tao_retval_info = _tao_retval._retn (); - _tao_ri.result (_tao_retval_info); - _tao_retval = _tao_retval_info; - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << _tao_retval.in ()) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:162 - -void POA_ImplementationRepository::Administration::_is_a_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); - - POA_ImplementationRepository::Administration *_tao_impl = - (POA_ImplementationRepository::Administration *) _tao_servant; - - CORBA::Boolean _tao_retval = 0; - CORBA::String_var value; - - if (!(_tao_in >> value.out ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } - - _tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::Administration::_non_existent_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration *_tao_impl = - (POA_ImplementationRepository::Administration *) _tao_servant; - - CORBA::Boolean _tao_retval = - _tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::Administration::_interface_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_IFR_Client_Adapter *_tao_adapter = - ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( - TAO_ORB_Core::ifr_client_adapter_name () - ); - - if (_tao_adapter == 0) - { - ACE_THROW (CORBA::INTF_REPOS ()); - } - - POA_ImplementationRepository::Administration *_tao_impl = - (POA_ImplementationRepository::Administration *) _tao_servant; - - CORBA::InterfaceDef_ptr _tao_retval = - _tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - CORBA::Boolean _tao_result = - _tao_adapter->interfacedef_cdr_insert ( - _tao_out, - _tao_retval - ); - - _tao_adapter->dispose (_tao_retval); - - if (_tao_result == 0) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::Administration::_component_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_object_reference, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::Administration *_tao_impl = - (POA_ImplementationRepository::Administration *) _tao_object_reference; - - CORBA::Object_var _tao_retval = - _tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << _tao_retval.in ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -CORBA::Boolean POA_ImplementationRepository::Administration::_is_a ( - const char* value - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/Administration:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; - } - else - { - return 0; - } -} - -void* POA_ImplementationRepository::Administration::_downcast ( - const char* logical_type_id - ) -{ - if (ACE_OS::strcmp (logical_type_id, - "IDL:ImplementationRepository/Administration:1.0") == 0) - { - return static_cast<POA_ImplementationRepository::Administration_ptr> (this); - } - - if (ACE_OS::strcmp (logical_type_id, - "IDL:omg.org/CORBA/Object:1.0") == 0) - { - return static_cast<PortableServer::Servant> (this); - } - - return 0; -} - -const char* POA_ImplementationRepository::Administration::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/Administration:1.0"; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:584 - -void POA_ImplementationRepository::Administration::_dispatch ( - TAO_ServerRequest &req, - void *servant_upcall - ACE_ENV_ARG_DECL - ) -{ - this->synchronous_upcall_dispatch (req, - servant_upcall, - this - ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:526 - -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 (); - - if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ()) - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 1, this), - 0 - ); - } - else - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 0, 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 ( - obj.in (), - ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:1536 - -class TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable - : public TAO_Perfect_Hash_OpTable -{ -private: - unsigned int hash (const char *str, unsigned int len); - -public: - const TAO_operation_db_entry * lookup (const char *str, unsigned int len); -}; - -/* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: gperf -m -M -J -c -C -D -E -T -f 0 -F 0,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) -{ - static const unsigned char asso_values[] = - { -#if defined (ACE_MVS) - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, - 16, 16, 0, 5, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 16, 16, 16, 16, 0, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, -#else - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 0, 16, 0, 16, 16, - 0, 5, 16, 16, 16, 16, 16, 16, 16, 16, - 0, 16, 16, 16, 16, 16, 0, 16, 16, 16, - 16, 0, 16, 16, 16, 16, 16, 16, -#endif /* ACE_MVS */ - }; - return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; -} - -const class TAO_operation_db_entry * -TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len) -{ - enum - { - TOTAL_KEYWORDS = 6, - MIN_WORD_LENGTH = 5, - MAX_WORD_LENGTH = 13, - MIN_HASH_VALUE = 5, - MAX_HASH_VALUE = 15, - HASH_VALUE_RANGE = 11, - DUPLICATES = 0, - WORDLIST_SIZE = 11 - }; - - static const class TAO_operation_db_entry wordlist[] = - { - {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0}, - {"_is_a", &POA_ImplementationRepository::ServerInformationIterator::_is_a_skel, 0, 0}, - {"next_n", &POA_ImplementationRepository::ServerInformationIterator::next_n_skel, &POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::next_n, &POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::next_n}, - {"destroy", &POA_ImplementationRepository::ServerInformationIterator::destroy_skel, &POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::destroy, &POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::destroy}, - {"",0,0,0},{"",0,0,0}, - {"_component", &POA_ImplementationRepository::ServerInformationIterator::_component_skel, 0, 0}, - {"",0,0,0},{"",0,0,0}, - {"_non_existent", &POA_ImplementationRepository::ServerInformationIterator::_non_existent_skel, 0, 0}, - {"",0,0,0}, - {"_interface", &POA_ImplementationRepository::ServerInformationIterator::_interface_skel, 0, 0}, - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) - { - const char *s = wordlist[key].opname_; - - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) - return &wordlist[key]; - } - } - return 0; -} - -static TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable tao_ImplementationRepository_ServerInformationIterator_optable; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interceptors_ss.cpp:53 - -#if (TAO_HAS_INTERCEPTORS == 1) - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::ServerInformationIterator *tao_impl, - const ::CORBA::ULong & how_many - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void result (CORBA::Boolean result); - -private: - TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n & - ); - -private: - POA_ImplementationRepository::ServerInformationIterator *_tao_impl; - - const ::CORBA::ULong & how_many_; - CORBA::Boolean _result; -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::ServerInformationIterator *tao_impl, - const ::CORBA::ULong & how_many - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl), - how_many_ (how_many) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - Dynamic::ParameterList_var safe_parameter_list = parameter_list; - parameter_list->length (1); - CORBA::ULong len = 0; - - (*parameter_list)[len].argument <<= how_many_; - (*parameter_list)[len].mode = CORBA::PARAM_IN; - len++; - - return safe_parameter_list._retn (); -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 0; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Any_var safe_result_any = result_any; - - (*result_any) <<= CORBA::Any::from_boolean (this->_result); - - return safe_result_any._retn (); -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -void -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::result (CORBA::Boolean result) -{ - // Update the result. - this->_result = result; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:74 - -class TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy : public TAO_ServerRequestInfo -{ -public: - TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall, - POA_ImplementationRepository::ServerInformationIterator *tao_impl - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual Dynamic::ParameterList * arguments ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual Dynamic::ExceptionList * exceptions ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Any * result ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual char * target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Boolean target_is_a ( - const char * id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC ((CORBA::SystemException)); - -private: - TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy & - ); - - void operator= ( - const TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy & - ); - -private: - POA_ImplementationRepository::ServerInformationIterator *_tao_impl; - -}; - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/interceptors_ss.cpp:438 - -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy ( - TAO_ServerRequest &_tao_server_request, - TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall, - POA_ImplementationRepository::ServerInformationIterator *tao_impl - ACE_ENV_ARG_DECL_NOT_USED - ) - : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall), - _tao_impl (tao_impl) -{} - -Dynamic::ParameterList * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::arguments ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the argument list on demand. - Dynamic::ParameterList *parameter_list = - TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return parameter_list; -} - -Dynamic::ExceptionList * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::exceptions ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the exception list on demand. - Dynamic::ExceptionList *exception_list = - TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return exception_list; -} - -CORBA::Any * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::result ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Generate the result on demand. - CORBA::Boolean tk_void_any = 1; - CORBA::Any *result_any = - TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return result_any; -} - -char * -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::target_most_derived_interface ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return - CORBA::string_dup (this->_tao_impl->_interface_repository_id ()); -} - -CORBA::Boolean -TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::target_is_a ( - const char * id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER); -} - -#endif /* TAO_HAS_INTERCEPTORS */ - -/////////////////////////////////////////////////////////////////////// -// Strategized Proxy Broker Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\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 * -POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::the_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void) -{ - static POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker - strategized_proxy_broker; - - return &strategized_proxy_broker; -} - -POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void) -{ -} - -POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::~_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void) -{ -} - -TAO::Collocation_Strategy -POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::get_strategy ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - TAO::Collocation_Strategy strategy = - TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); - - return strategy; -} - -void -POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::dispatch ( - CORBA::Object_ptr obj, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::Exception)) -{ - TAO_Object_Adapter::Servant_Upcall servant_upcall ( - obj->_stubobj ()->servant_orb_var ()->orb_core () - ); - - TAO_Collocated_Skeleton collocated_skel; - TAO_Abstract_ServantBase *servant = 0; - - if (strategy == TAO::TAO_CS_THRU_POA_STRATEGY) - { - servant_upcall.prepare_for_upcall ( - obj->_stubobj ()->object_key (), - op, - forward_obj - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - servant_upcall.pre_invoke_collocated_request ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; - - servant = servant_upcall.servant (); - } - else - { - servant = obj->_servant (); - } - - int status = servant->_find (op, - collocated_skel, - strategy, - op_len); - - if (status == -1) - { - ACE_THROW (CORBA::BAD_OPERATION ()); - } - - ACE_TRY - { - collocated_skel (servant, - args, - num_args - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } -#if (TAO_HAS_MINIMUM_CORBA == 0) - ACE_CATCH (PortableServer::ForwardRequest, forward_request) - { - forward_obj = - CORBA::Object::_duplicate (forward_request.forward_reference.in ()); - return; - } -#else - ACE_CATCHANY - { - ACE_UNUSED_ARG (forward_obj); - ACE_RE_THROW; - } -#endif /* TAO_HAS_MINIMUM_CORBA */ - ACE_ENDTRY; - ACE_CHECK; -} - -// -// End Strategized Proxy Broker Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:648 - -TAO::Collocation_Proxy_Broker * -ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function (CORBA::Object_ptr) -{ - return - ::POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::the_TAO_ServerInformationIterator_Strategized_Proxy_Broker (); -} - -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; - - return 0; -} - -static int -ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Stub_Factory_Initializer_Scarecrow = - ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_Initializer ( - reinterpret_cast< - size_t> ( - ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_Initializer - ) - ); - - -/////////////////////////////////////////////////////////////////////// -// ThruPOA Proxy Implementation -// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_ss.cpp:37 - -POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl (void) -{} - -// ThruPOA Implementation of the IDL interface methods - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::next_n ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ((TAO::Arg_Traits< ACE_InputCDR::to_boolean>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::ServerInformationIterator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerInformationIterator:1.0" - ) - )->next_n ( - ((TAO::Arg_Traits< CORBA::ULong>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformationList>::out_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52 - -void -POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::destroy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument **, - int - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::ServerInformationIterator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerInformationIterator:1.0" - ) - )->destroy ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End ThruPOA Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////// -// Direct Proxy Implementation -// - -POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::_TAO_ServerInformationIterator_Direct_Proxy_Impl (void) -{} - -// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ((TAO::Arg_Traits< ACE_InputCDR::to_boolean>::ret_val *) args[0])->arg () = - reinterpret_cast< - POA_ImplementationRepository::ServerInformationIterator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerInformationIterator:1.0" - ) - )->next_n ( - ((TAO::Arg_Traits< CORBA::ULong>::in_arg_val *) args[1])->arg (), - ((TAO::Arg_Traits< ::ImplementationRepository::ServerInformationList>::out_arg_val *) args[2])->arg () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; -}// TAO_IDL - Generated from -// E:\doc_cvs\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 - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - reinterpret_cast< - POA_ImplementationRepository::ServerInformationIterator_ptr> ( - servant->_downcast ( - "IDL:ImplementationRepository/ServerInformationIterator:1.0" - ) - )->destroy ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - ACE_CHECK; -} - -// -// End Direct Proxy Implementation -/////////////////////////////////////////////////////////////////////// - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:97 - -POA_ImplementationRepository::ServerInformationIterator::ServerInformationIterator (void) -{ - this->optable_ = &tao_ImplementationRepository_ServerInformationIterator_optable; -} - -POA_ImplementationRepository::ServerInformationIterator::ServerInformationIterator (const ServerInformationIterator& rhs) - : TAO_Abstract_ServantBase (rhs), - TAO_ServantBase (rhs) -{ -} - -POA_ImplementationRepository::ServerInformationIterator::~ServerInformationIterator (void) -{ -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::ServerInformationIterator::next_n_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); -POA_ImplementationRepository::ServerInformationIterator *_tao_impl = - static_cast< - POA_ImplementationRepository::ServerInformationIterator *> ( - _tao_servant - ); - CORBA::Boolean _tao_retval = 0; - ::CORBA::ULong how_many; - ::ImplementationRepository::ServerInformationList_var server_list; - - - if (!( - (_tao_in >> how_many) - )) - { - TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl, - - how_many - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - _tao_retval = - _tao_impl->next_n ( - how_many, - - server_list.out () - ACE_ENV_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - CORBA::Boolean _tao_retval_info = _tao_retval; - _tao_ri.result (_tao_retval_info); - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); -#if (TAO_HAS_INTERCEPTORS == 1) - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!( - (_tao_out << CORBA::Any::from_boolean (_tao_retval)) && - (_tao_out << server_list.in ()) - )) - { - TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -#if (TAO_HAS_INTERCEPTORS == 1) - } -#endif /* TAO_HAS_INTERCEPTORS */ - - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ss.cpp:98 - -void POA_ImplementationRepository::ServerInformationIterator::destroy_skel ( - TAO_ServerRequest &_tao_server_request, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerInformationIterator *_tao_impl = - static_cast< - POA_ImplementationRepository::ServerInformationIterator *> ( - _tao_servant - ); - _tao_server_request.argument_flag (0); - - -#if (TAO_HAS_INTERCEPTORS == 1) - TAO_Object_Adapter::Servant_Upcall *_tao_upcall = - static_cast< - TAO_Object_Adapter::Servant_Upcall *> ( - _tao_servant_upcall - ); - - TAO_ServerRequestInterceptor_Adapter _tao_vfr ( - _tao_server_request.orb_core ()->server_request_interceptors (), - _tao_server_request.interceptor_count () - ); - - TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy _tao_ri ( - _tao_server_request, - _tao_upcall, - _tao_impl - ACE_ENV_ARG_PARAMETER - ); - - ACE_TRY - { - { - TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (), - true /* Copy TSC to RSC */); - - _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!_tao_vfr.location_forwarded ()) - { -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_impl->destroy ( - ACE_ENV_SINGLE_ARG_PARAMETER - ); - TAO_INTERCEPTOR_CHECK; -#if (TAO_HAS_INTERCEPTORS == 1) - } - } - - if (!_tao_vfr.location_forwarded ()) - { - _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL); - _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - _tao_ri.exception (&ACE_ANY_EXCEPTION); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION - || _tao_status == PortableInterceptor::USER_EXCEPTION) - { - ACE_RE_THROW; - } - } - -# if defined (ACE_HAS_EXCEPTIONS) \ - && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS) - ACE_CATCHALL - { - CORBA::UNKNOWN ex; - - _tao_ri.exception (&ex); - _tao_vfr.send_exception ( - &_tao_ri - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - PortableInterceptor::ReplyStatus _tao_status = - _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION) - ACE_TRY_THROW (ex); - } -# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */ - ACE_ENDTRY; - ACE_CHECK; -#endif /* TAO_HAS_INTERCEPTORS */ - - _tao_server_request.init_reply (); - - // In case _tao_servant_upcall is not used in this function - ACE_UNUSED_ARG (_tao_servant_upcall); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:162 - -void POA_ImplementationRepository::ServerInformationIterator::_is_a_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_InputCDR &_tao_in = _tao_server_request.incoming (); - - POA_ImplementationRepository::ServerInformationIterator *_tao_impl = - (POA_ImplementationRepository::ServerInformationIterator *) _tao_servant; - - CORBA::Boolean _tao_retval = 0; - CORBA::String_var value; - - if (!(_tao_in >> value.out ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } - - _tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::ServerInformationIterator::_non_existent_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerInformationIterator *_tao_impl = - (POA_ImplementationRepository::ServerInformationIterator *) _tao_servant; - - CORBA::Boolean _tao_retval = - _tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval))) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::ServerInformationIterator::_interface_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_servant, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - TAO_IFR_Client_Adapter *_tao_adapter = - ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ( - TAO_ORB_Core::ifr_client_adapter_name () - ); - - if (_tao_adapter == 0) - { - ACE_THROW (CORBA::INTF_REPOS ()); - } - - POA_ImplementationRepository::ServerInformationIterator *_tao_impl = - (POA_ImplementationRepository::ServerInformationIterator *) _tao_servant; - - CORBA::InterfaceDef_ptr _tao_retval = - _tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - CORBA::Boolean _tao_result = - _tao_adapter->interfacedef_cdr_insert ( - _tao_out, - _tao_retval - ); - - _tao_adapter->dispose (_tao_retval); - - if (_tao_result == 0) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -void POA_ImplementationRepository::ServerInformationIterator::_component_skel ( - TAO_ServerRequest &_tao_server_request, - void * _tao_object_reference, - void * /* Servant_Upcall */ - ACE_ENV_ARG_DECL - ) -{ - POA_ImplementationRepository::ServerInformationIterator *_tao_impl = - (POA_ImplementationRepository::ServerInformationIterator *) _tao_object_reference; - - CORBA::Object_var _tao_retval = - _tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - _tao_server_request.init_reply (); - TAO_OutputCDR &_tao_out = _tao_server_request.outgoing (); - - if (!(_tao_out << _tao_retval.in ())) - { - ACE_THROW (CORBA::MARSHAL ()); - } -} - -CORBA::Boolean POA_ImplementationRepository::ServerInformationIterator::_is_a ( - const char* value - ACE_ENV_ARG_DECL_NOT_USED - ) -{ - if ( - !ACE_OS::strcmp ( - (char *)value, - "IDL:ImplementationRepository/ServerInformationIterator:1.0" - ) || - !ACE_OS::strcmp ( - (char *)value, - "IDL:omg.org/CORBA/Object:1.0" - ) - ) - { - return 1; - } - else - { - return 0; - } -} - -void* POA_ImplementationRepository::ServerInformationIterator::_downcast ( - const char* logical_type_id - ) -{ - if (ACE_OS::strcmp (logical_type_id, - "IDL:ImplementationRepository/ServerInformationIterator:1.0") == 0) - { - return static_cast<POA_ImplementationRepository::ServerInformationIterator_ptr> (this); - } - - if (ACE_OS::strcmp (logical_type_id, - "IDL:omg.org/CORBA/Object:1.0") == 0) - { - return static_cast<PortableServer::Servant> (this); - } - - return 0; -} - -const char* POA_ImplementationRepository::ServerInformationIterator::_interface_repository_id (void) const -{ - return "IDL:ImplementationRepository/ServerInformationIterator:1.0"; -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:584 - -void POA_ImplementationRepository::ServerInformationIterator::_dispatch ( - TAO_ServerRequest &req, - void *servant_upcall - ACE_ENV_ARG_DECL - ) -{ - this->synchronous_upcall_dispatch (req, - servant_upcall, - this - ACE_ENV_ARG_PARAMETER); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ss.cpp:526 - -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 (); - - if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ()) - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 1, this), - 0 - ); - } - else - { - ACE_NEW_RETURN ( - tmp, - CORBA::Object (stub, 0, 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 ( - obj.in (), - ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer - ); -} - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:1680 - -#if 0 -/* Useful at a later date. -At present will be commented out */ - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerObject>; - - template class - TAO::Object_SArg_Traits_T< - ImplementationRepository::ServerObject_ptr, - ImplementationRepository::ServerObject_var, - ImplementationRepository::ServerObject_out, - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::StartupOptions>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::StartupOptions, - ImplementationRepository::StartupOptions_var, - ImplementationRepository::StartupOptions_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerInformation>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_var, - ImplementationRepository::ServerInformation_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerInformationList>; - - template class - TAO::Var_Size_SArg_Traits_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_var, - ImplementationRepository::ServerInformationList_out - >; - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_ - - template class TAO::SArg_Traits<ImplementationRepository::ServerInformationIterator>; - - template class - TAO::Object_SArg_Traits_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_var, - ImplementationRepository::ServerInformationIterator_out, - >; - -#endif /* end #if !defined */ - - template class - TAO::Out_Var_Size_SArgument_T< - ImplementationRepository::ServerInformationList, - ImplementationRepository::ServerInformationList_out - >; - - template class - TAO::In_Var_Size_SArgument_T< - ImplementationRepository::StartupOptions - >; - - template class - TAO::In_Object_SArgument_T< - ImplementationRepository::ServerObject_ptr - >; - - template class - TAO::Out_Var_Size_SArgument_T< - ImplementationRepository::ServerInformation, - ImplementationRepository::ServerInformation_out - >; - - template class - TAO::Out_Object_SArgument_T< - ImplementationRepository::ServerInformationIterator_ptr, - ImplementationRepository::ServerInformationIterator_out - >; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerObject> - -# pragma instantiate \ - TAO::Object_SArg_Traits_T< \ - ImplementationRepository::ServerObject_ptr, \ - ImplementationRepository::ServerObject_var, \ - ImplementationRepository::ServerObject_out, \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_STARTUPOPTIONS__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::StartupOptions> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::StartupOptions, \ - ImplementationRepository::StartupOptions_var, \ - ImplementationRepository::StartupOptions_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATION__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerInformation> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_var, \ - ImplementationRepository::ServerInformation_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONLIST__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerInformationList> - -# pragma instantiate \ - TAO::Var_Size_SArg_Traits_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_var, \ - ImplementationRepository::ServerInformationList_out \ - > - -#endif /* end #if !defined */ - -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR__SARG_TRAITS_TMPLINST_SS_ - -# pragma instantiate TAO::SArg_Traits<ImplementationRepository::ServerInformationIterator> - -# pragma instantiate \ - TAO::Object_SArg_Traits_T< \ - ImplementationRepository::ServerInformationIterator_ptr, \ - ImplementationRepository::ServerInformationIterator_var, \ - ImplementationRepository::ServerInformationIterator_out, \ - > - -#endif /* end #if !defined */ - -# pragma instantiate \ - TAO::Out_Var_Size_SArgument_T< \ - ImplementationRepository::ServerInformationList, \ - ImplementationRepository::ServerInformationList_out \ - > - -# pragma instantiate \ - TAO::In_Var_Size_SArgument_T< \ - ImplementationRepository::StartupOptions \ - > - -# pragma instantiate \ - TAO::In_Object_SArgument_T< \ - ImplementationRepository::ServerObject_ptr \ - > - -# pragma instantiate \ - TAO::Out_Var_Size_SArgument_T< \ - ImplementationRepository::ServerInformation, \ - ImplementationRepository::ServerInformation_out \ - > - -# pragma instantiate \ - TAO::Out_Object_SArgument_T< \ - ImplementationRepository::ServerInformationIterator_ptr, \ - ImplementationRepository::ServerInformationIterator_out \ - > - -#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ -#endif /*if 0*/ - - -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/ImplRepoS.h b/TAO/tao/PortableServer/ImplRepoS.h deleted file mode 100644 index a7fc6e3a573..00000000000 --- a/TAO/tao/PortableServer/ImplRepoS.h +++ /dev/null @@ -1,1346 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:409 - -#ifndef _TAO_IDL_IMPLREPOS_H_ -#define _TAO_IDL_IMPLREPOS_H_ - -#include /**/ "ace/pre.h" - -#include "ImplRepoC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Collocation_Proxy_Broker.h" -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Base.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option push -w-rvl -w-rch -w-ccc -w-inl -#endif /* __BORLANDC__ */ - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_sh.cpp:49 - -namespace POA_ImplementationRepository -{ - - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_sh.cpp:90 - - class ServerObject; - typedef ServerObject *ServerObject_ptr; - - class _TAO_ServerObject_ThruPOA_Proxy_Impl; - class _TAO_ServerObject_Direct_Proxy_Impl; - class _TAO_ServerObject_Strategized_Proxy_Broker; - - class TAO_PortableServer_Export ServerObject - : public virtual PortableServer::ServantBase - { - protected: - ServerObject (void); - - public: - // Useful for template programming. - typedef ::ImplementationRepository::ServerObject _stub_type; - typedef ::ImplementationRepository::ServerObject_ptr _stub_ptr_type; - typedef ::ImplementationRepository::ServerObject_var _stub_var_type; - - ServerObject (const ServerObject& rhs); - virtual ~ServerObject (void); - - virtual CORBA::Boolean _is_a ( - const char* logical_type_id - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ); - - virtual void* _downcast ( - const char* logical_type_id - ); - - static void _is_a_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _non_existent_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _interface_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _component_skel ( - TAO_ServerRequest &req, - void *obj, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - virtual void _dispatch ( - TAO_ServerRequest &req, - void *_servant_upcall - ACE_ENV_ARG_DECL - ); - - ::ImplementationRepository::ServerObject *_this ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ); - - virtual const char* _interface_repository_id (void) const; - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void ping ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void ping_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void shutdown ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void shutdown_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - }; - - /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - - class TAO_PortableServer_Export _TAO_ServerObject_Strategized_Proxy_Broker - : public virtual TAO::Collocation_Proxy_Broker - { - public: - _TAO_ServerObject_Strategized_Proxy_Broker (void); - - virtual ~_TAO_ServerObject_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, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::Exception)); - - static _TAO_ServerObject_Strategized_Proxy_Broker * - the_TAO_ServerObject_Strategized_Proxy_Broker (void); - }; - - // - // End Strategized Proxy Broker Declaration - /////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////// - // ThruPOA Proxy Impl. Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_sh.cpp:37 - - class TAO_PortableServer_Export _TAO_ServerObject_ThruPOA_Proxy_Impl - { - public: - _TAO_ServerObject_ThruPOA_Proxy_Impl (void); - - virtual ~_TAO_ServerObject_ThruPOA_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - ping ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - }; - - // - // ThruPOA Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - - /////////////////////////////////////////////////////////////////////// - // Direct Impl. Declaration - // - - class TAO_PortableServer_Export _TAO_ServerObject_Direct_Proxy_Impl - { - public: - _TAO_ServerObject_Direct_Proxy_Impl (void); - - virtual ~_TAO_ServerObject_Direct_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - ping ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - }; - - // - // Direct Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_sh.cpp:90 - - class Administration; - typedef Administration *Administration_ptr; - - class _TAO_Administration_ThruPOA_Proxy_Impl; - class _TAO_Administration_Direct_Proxy_Impl; - class _TAO_Administration_Strategized_Proxy_Broker; - - class TAO_PortableServer_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 - ); - - virtual void* _downcast ( - const char* logical_type_id - ); - - static void _is_a_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _non_existent_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _interface_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _component_skel ( - TAO_ServerRequest &req, - void *obj, - void *servant_upcall - 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 - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) = 0; - - static void activate_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual char * activate_server_with_startup ( - const char * server, - ::CORBA::Long check_startup - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )) = 0; - - static void activate_server_with_startup_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\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 &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void reregister_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 ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void remove_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void shutdown_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void server_is_running ( - const char * server, - const char * addr, - ::ImplementationRepository::ServerObject_ptr server_object - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void server_is_running_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void server_is_shutting_down_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 - )) = 0; - - static void find_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\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, - ::ImplementationRepository::ServerInformationIterator_out server_iterator - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void list_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual void shutdown_repo ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void shutdown_repo_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_sh.cpp:45 - - virtual char * find_ior ( - const char * object_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )) = 0; - - static void find_ior_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - }; - - /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - - class TAO_PortableServer_Export _TAO_Administration_Strategized_Proxy_Broker - : public virtual TAO::Collocation_Proxy_Broker - { - 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, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - 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 - /////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////// - // ThruPOA Proxy Impl. Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_sh.cpp:37 - - class TAO_PortableServer_Export _TAO_Administration_ThruPOA_Proxy_Impl - { - public: - _TAO_Administration_ThruPOA_Proxy_Impl (void); - - virtual ~_TAO_Administration_ThruPOA_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - }; - - // - // ThruPOA Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - - /////////////////////////////////////////////////////////////////////// - // Direct Impl. Declaration - // - - class TAO_PortableServer_Export _TAO_Administration_Direct_Proxy_Impl - { - public: - _TAO_Administration_Direct_Proxy_Impl (void); - - virtual ~_TAO_Administration_Direct_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - activate_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - activate_server_with_startup ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound, - ::ImplementationRepository::CannotActivate - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - register_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - reregister_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::AlreadyRegistered, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - remove_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown_server ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_running ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - server_is_shutting_down ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - find ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - list ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - shutdown_repo ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - find_ior ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ::ImplementationRepository::NotFound - )); - }; - - // - // Direct Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_sh.cpp:90 - - class ServerInformationIterator; - typedef ServerInformationIterator *ServerInformationIterator_ptr; - - class _TAO_ServerInformationIterator_ThruPOA_Proxy_Impl; - class _TAO_ServerInformationIterator_Direct_Proxy_Impl; - class _TAO_ServerInformationIterator_Strategized_Proxy_Broker; - - class TAO_PortableServer_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 - ); - - virtual void* _downcast ( - const char* logical_type_id - ); - - static void _is_a_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _non_existent_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _interface_skel ( - TAO_ServerRequest &req, - void *servant, - void *servant_upcall - ACE_ENV_ARG_DECL - ); - - static void _component_skel ( - TAO_ServerRequest &req, - void *obj, - void *servant_upcall - 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 - // E:\doc_cvs\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 server_list - ACE_ENV_ARG_DECL_WITH_DEFAULTS - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - - static void next_n_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - - // TAO_IDL - Generated from - // E:\doc_cvs\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 &_tao_req, - void *_tao_servant, - void *_tao_servant_upcall - ACE_ENV_ARG_DECL - ); - }; - - /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - - class TAO_PortableServer_Export _TAO_ServerInformationIterator_Strategized_Proxy_Broker - : public virtual TAO::Collocation_Proxy_Broker - { - 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, - CORBA::Object_out forward_obj, - TAO::Argument ** args, - int num_args, - const char * op, - size_t op_len, - TAO::Collocation_Strategy strategy - 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 - /////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////// - // ThruPOA Proxy Impl. Declaration - // - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/thru_poa_proxy_impl_sh.cpp:37 - - class TAO_PortableServer_Export _TAO_ServerInformationIterator_ThruPOA_Proxy_Impl - { - public: - _TAO_ServerInformationIterator_ThruPOA_Proxy_Impl (void); - - virtual ~_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - next_n ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - destroy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - }; - - // - // ThruPOA Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - - /////////////////////////////////////////////////////////////////////// - // Direct Impl. Declaration - // - - class TAO_PortableServer_Export _TAO_ServerInformationIterator_Direct_Proxy_Impl - { - public: - _TAO_ServerInformationIterator_Direct_Proxy_Impl (void); - - virtual ~_TAO_ServerInformationIterator_Direct_Proxy_Impl (void) {} - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - next_n ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - // TAO_IDL - Generated from - // E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/proxy_impl_xh.cpp:24 - - static void - destroy ( - TAO_Abstract_ServantBase *servant, - TAO::Argument ** args, - int num_args - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - }; - - // - // Direct Proxy Impl. Declaration - /////////////////////////////////////////////////////////////////////// - - - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_sh.cpp:80 - -} // module ImplementationRepository - -// TAO_IDL - Generated from -// E:\doc_cvs\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:1012 - - -#if defined (__ACE_INLINE__) -#include "ImplRepoS.inl" -#endif /* defined INLINE */ - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__BORLANDC__) -#pragma option pop -#endif /* __BORLANDC__ */ - -#include /**/ "ace/post.h" -#endif /* ifndef */ diff --git a/TAO/tao/PortableServer/ImplRepoS.inl b/TAO/tao/PortableServer/ImplRepoS.inl deleted file mode 100644 index 1d2df31bd57..00000000000 --- a/TAO/tao/PortableServer/ImplRepoS.inl +++ /dev/null @@ -1,26 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html diff --git a/TAO/tao/PortableServer/POA.cpp b/TAO/tao/PortableServer/POA.cpp index 1c3c864a71d..ebed46d63f7 100644 --- a/TAO/tao/PortableServer/POA.cpp +++ b/TAO/tao/PortableServer/POA.cpp @@ -8,7 +8,6 @@ ACE_RCSID (PortableServer, // ImplRepo related. // #if (TAO_HAS_MINIMUM_CORBA == 0) -# include "tao/PortableServer/ImR_LocatorC.h" # include "tao/PortableServer/ImplRepo_i.h" #endif /* TAO_HAS_MINIMUM_CORBA */ @@ -3945,6 +3944,13 @@ TAO_POA::imr_notify_startup (ACE_ENV_SINGLE_ARG_DECL) if (CORBA::is_nil (imr.in ())) return; + ImplementationRepository::Administration_var imr_locator = + ImplementationRepository::Administration::_narrow (imr.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + if (CORBA::is_nil(imr_locator.in ())) + return; + TAO_POA *root_poa = this->object_adapter ().root_poa (); ACE_NEW_THROW_EX (this->server_object_, ServerObject_i (this->orb_core_.orb (), @@ -3979,7 +3985,7 @@ TAO_POA::imr_notify_startup (ACE_ENV_SINGLE_ARG_DECL) if (!svr->_stubobj () || !svr->_stubobj ()->profile_in_use ()) { - ACE_ERROR ((LM_ERROR, "Invalid ServerObject, bailing out.\n")); + ACE_ERROR ((LM_ERROR, "Invalid ImR ServerObject, bailing out.\n")); return; } @@ -3998,33 +4004,14 @@ TAO_POA::imr_notify_startup (ACE_ENV_SINGLE_ARG_DECL) ACE_CString partial_ior(ior.in (), (pos - ior.in()) + 1); - ImplementationRepository::Locator_var imr_locator = - ImplementationRepository::Locator::_narrow (imr.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil(imr_locator.in ())) - { - ACE_DEBUG ((LM_DEBUG, "Couldnt narrow down the ImR interface\n")); - return; - } - if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, "Informing IMR that we are running at: %s\n", ACE_TEXT_CHAR_TO_TCHAR (partial_ior.c_str()))); - char host_name[MAXHOSTNAMELEN + 1]; - ACE_OS::hostname (host_name, MAXHOSTNAMELEN); - ACE_TRY { - // Relies on the fact that host_name will be same for the activator - // We must pass this separately, because it is NOT possible to parse - // the hostname from the ior portably. On some platforms the hostname - // will be like 'foo.bar.com' and on others it will just be 'foo' - imr_locator->server_is_running_in_activator (this->name().c_str (), - host_name, + imr_locator->server_is_running (this->name().c_str (), partial_ior.c_str(), svr.in() ACE_ENV_ARG_PARAMETER); @@ -4052,12 +4039,6 @@ TAO_POA::imr_notify_startup (ACE_ENV_SINGLE_ARG_DECL) void TAO_POA::imr_notify_shutdown (void) { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notifying IMR of Shutdown\n")); - - char host_name[MAXHOSTNAMELEN + 1]; - ACE_OS::hostname (host_name, MAXHOSTNAMELEN); - // Notify the Implementation Repository about shutting down. CORBA::Object_var imr = this->orb_core ().implrepo_service (); @@ -4067,20 +4048,20 @@ TAO_POA::imr_notify_shutdown (void) ACE_TRY_NEW_ENV { + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, "Notifing IMR of Shutdown server:%s\n", this->the_name())); + // Get the IMR's administrative object and call shutting_down on it - ImplementationRepository::Locator_var imr_locator = - ImplementationRepository::Locator::_narrow (imr.in () - ACE_ENV_ARG_PARAMETER); + ImplementationRepository::Administration_var imr_locator = + ImplementationRepository::Administration::_narrow (imr.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - imr_locator->server_is_shutting_down_in_activator (this->the_name (), - host_name - ACE_ENV_ARG_PARAMETER); + imr_locator->server_is_shutting_down (this->the_name () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_CATCHANY { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Server_i::init"); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "POA::imr_notify_shutdown()"); // Ignore exceptions } ACE_ENDTRY; diff --git a/TAO/utils/catior/catior.cpp b/TAO/utils/catior/catior.cpp index 494a15cd204..cca07e3a276 100644 --- a/TAO/utils/catior/catior.cpp +++ b/TAO/utils/catior/catior.cpp @@ -17,24 +17,22 @@ // Jason Cohen, Lockheed Martin ATL <jcohen@atl.lmco.com> // // ============================================================================ -// FUZZ: disable check_for_streams_include #include "ace/Codeset_Registry.h" #include "ace/Get_Opt.h" #include "ace/streams.h" -#include "ace/os_include/os_ctype.h" +#include "tao/corba.h" #include "tao/IIOP_Profile.h" #include "tao/Messaging_PolicyValueC.h" #include "tao/Messaging/Messaging_RT_PolicyC.h" #include "tao/Messaging/Messaging_SyncScope_PolicyC.h" #include "tao/Messaging/Messaging_No_ImplC.h" #include "tao/RTCORBA/RTCORBA.h" -#include "tao/Typecode.h" +//#include "tao/Typecode.h" #include "tao/Marshal.h" -#include "tao/ORB_Constants.h" +//#include "tao/ORB_Constants.h" #include "tao/Transport_Acceptor.h" #include "tao/IIOP_EndpointsC.h" -#include "tao/CDR.h" static CORBA::Boolean @@ -132,8 +130,10 @@ catiiop (char* string static CORBA::Boolean cat_iiop_profile (TAO_InputCDR& cdr); +#if 0 static CORBA::Boolean cat_sciop_profile (TAO_InputCDR& cdr); +#endif /*if 0*/ static CORBA::Boolean cat_uiop_profile (TAO_InputCDR& cdr); @@ -272,12 +272,19 @@ catior (char* str continue_decoding = cat_iiop_profile (stream); ACE_DEBUG ((LM_DEBUG, "%}")); } + +// the SCIOR decoding is disabled in the main branch. This will be +// enabled when SCTP_O branch is merged in. +// gthaker@atl.lmco.com, Feb 11, 2003. +#if 0 else if (tag == TAO_TAG_SCIOP_PROFILE) { ACE_DEBUG ((LM_DEBUG, "%{")); continue_decoding = cat_sciop_profile (stream); ACE_DEBUG ((LM_DEBUG, "%}")); } +#endif + else if (tag == TAO_TAG_UIOP_PROFILE) { ACE_DEBUG ((LM_DEBUG, "%{")); @@ -436,7 +443,7 @@ catpoop (char* string int main (int argc, char *argv[]) { - ACE_Get_Opt get_opt (argc, argv, "f:"); + ACE_Get_Opt get_opt (argc, argv, "f:n:"); ACE_DECLARE_NEW_CORBA_ENV; CORBA::ORB_var orb_var = CORBA::ORB_init (argc, argv, "TAO" ACE_ENV_ARG_PARAMETER); @@ -447,6 +454,15 @@ main (int argc, char *argv[]) { switch (opt) { + case 'n': + // Read the CosName from the NamingService convert the + // object_ptr to a CORBA::String_var via the call to + // object_to_string. + ACE_DEBUG ((LM_DEBUG, + "opening a connection to the NamingService\n" + "resolving the CosName %s\n", + get_opt.opt_arg ())); + break; case 'f': { // Read the file into a CORBA::String_var. @@ -490,7 +506,7 @@ main (int argc, char *argv[]) // Strip the IOR: off the string. ACE_CString prefix = "IOR:"; - short prefixLength = prefix.length (); + size_t prefixLength = prefix.length (); ACE_CString subString = aString.substring (prefixLength, @@ -505,7 +521,7 @@ main (int argc, char *argv[]) "decoding an IIOP URL IOR\n")); ACE_CString prefix = "IIOP:"; - short prefixLength = prefix.length (); + size_t prefixLength = prefix.length (); ACE_CString subString = aString.substring (prefixLength, @@ -541,6 +557,7 @@ main (int argc, char *argv[]) ACE_ERROR_RETURN ((LM_ERROR, "Usage: %s " "-f filename " + "-n CosName " "\n" "Reads an IOR " "and dumps the contents to stdout " @@ -592,10 +609,6 @@ cat_tao_tag_endpoints (TAO_InputCDR& stream) { TAO::IIOPEndpointSequence epseq; stream2 >> epseq; - ACE_DEBUG ((LM_DEBUG, - "%I Number of endpoints: %d\n", - epseq.length())); - for (unsigned int iter=0; iter < epseq.length() ; iter++) { ACE_DEBUG ((LM_DEBUG, "%I Endpoint #%d:\n",iter+1)); @@ -612,37 +625,25 @@ cat_tao_tag_endpoints (TAO_InputCDR& stream) { return 1; } +// alternate endpoints arent supported yet +#if 0 static CORBA::Boolean -cat_tag_group (TAO_InputCDR& stream) { -/* -ID is 27 -Component Value len: 36 -Component Value as hex: -01 01 00 cd 0f 00 00 00 64 65 66 61 75 6c 74 2d -64 6f 6d 61 69 6e 00 cd 01 00 00 00 00 00 00 00 -02 00 00 00 -The Component Value as string: - ...-....default-domain.-............ -*/ - -#if 1 - cat_octet_seq ("TAG_GROUP", stream); -#else - CORBA::Octet version_major; - if (stream.read_octet(version_major) == 0) - { +cat_tag_alternate_endpoints (TAO_InputCDR& stream) { + CORBA::ULong length = 0; + if (stream.read_ulong (length) == 0) return 1; - } - CORBA::Octet version_minor; - if (stream.read_octet(version_minor) == 0) - { - return 1; - } + TAO_InputCDR stream2 (stream, length); + stream.skip_bytes(length); -#endif + TAG_ALTERNATE_IIOP_Endpoint_Info ei; + if ((stream2 >> ei) == 0) + ACE_ERROR_RETURN ((LM_ERROR,"cannot extract endpoint info\n"),0); + ACE_DEBUG ((LM_DEBUG, + "%I endpoint: %s:%u\n",ei.host.in(),(unsigned short)ei.port)); return 1; } +#endif static CORBA::Boolean cat_tag_policies (TAO_InputCDR& stream) { @@ -827,7 +828,8 @@ cat_octet_seq (const char *object_name, for (i = 0; i < length; i++) { char c = objKey[i]; - if (isprint (c)) + int tmp = (unsigned char) c; // isprint doesn't work with negative vals.(except EOF) + if (isprint (tmp)) ACE_DEBUG ((LM_DEBUG, "%c", c)); else ACE_DEBUG ((LM_DEBUG, ".")); @@ -888,7 +890,7 @@ cat_codeset_info(TAO_InputCDR& stream) CORBA::ULong byteOrder; stream >> byteOrder; - if( byteOrder ) + if (byteOrder) { ACE_DEBUG ((LM_DEBUG, "\tThe Component Byte Order:\tLittle Endian\n")); @@ -900,41 +902,42 @@ cat_codeset_info(TAO_InputCDR& stream) // CodesetId for char // CORBA::ULong c_ncsId; ACE_DEBUG ((LM_DEBUG, "\tNative CodeSet for char: ")); - displayHex( stream ); + displayHex (stream); // number of Conversion Codesets for char CORBA::ULong c_ccslen=0; stream >> c_ccslen; ACE_DEBUG ((LM_DEBUG, "\tNumber of CCS for char %u \n", c_ccslen)); - if( c_ccslen ) + if (c_ccslen) ACE_DEBUG ((LM_DEBUG, "\tConversion Codesets for char are: \n")); // Loop through and display them - for( CORBA::ULong index=0; index < c_ccslen; ++index) + CORBA::ULong index = 0; + for ( ; index < c_ccslen; ++index) { // CodesetId for char ACE_DEBUG ((LM_DEBUG, "\t%u) ", index + 1L)); - displayHex( stream ); + displayHex (stream); } // CodesetId for wchar ACE_DEBUG ((LM_DEBUG, "\tNative CodeSet for wchar: ")); - displayHex( stream ); + displayHex (stream); // number of Conversion Codesets for char CORBA::ULong w_ccslen=0; stream >> w_ccslen; ACE_DEBUG ((LM_DEBUG, "\tNumber of CCS for wchar %u \n", w_ccslen)); - if( w_ccslen ) + if (w_ccslen) ACE_DEBUG ((LM_DEBUG, "\tConversion Codesets for wchar are: \n")); // Loop through and display them - for( CORBA::ULong index2=0; index2 < w_ccslen; ++index2) + for (index = 0; index < w_ccslen; ++index) { - ACE_DEBUG ((LM_DEBUG, "\t %u) ", index2 + 1L)); - displayHex( stream ); + ACE_DEBUG ((LM_DEBUG, "\t %u) ", index + 1L)); + displayHex (stream); } return 1; } @@ -967,13 +970,14 @@ cat_tagged_components (TAO_InputCDR& stream) ACE_DEBUG ((LM_DEBUG, "%{%{")); cat_codeset_info(stream); ACE_DEBUG ((LM_DEBUG, "%}%}")); - +// TAG_ALTERNATE_IIOP_ADDRESS not supported yet +#if 0 } else if (tag == IOP::TAG_ALTERNATE_IIOP_ADDRESS) { ACE_DEBUG ((LM_DEBUG,"%d (TAG_ALTERNATE_IIOP_ADDRESS)\n", tag)); ACE_DEBUG ((LM_DEBUG, "%{%{")); - cat_octet_seq ("Component Value" ,stream); + cat_tag_alternate_endpoints (stream); ACE_DEBUG ((LM_DEBUG, "%}%}")); - +#endif } else if (tag == TAO_TAG_ENDPOINTS) { ACE_DEBUG ((LM_DEBUG,"%d (TAO_TAG_ENDPOINTS)\n", tag)); ACE_DEBUG ((LM_DEBUG, "%{%{")); @@ -985,16 +989,6 @@ cat_tagged_components (TAO_InputCDR& stream) ACE_DEBUG ((LM_DEBUG, "%{%{")); cat_tag_policies(stream); ACE_DEBUG ((LM_DEBUG, "%}%}")); - } else if (tag == IOP::TAG_FT_GROUP) { //@@ PortableGroup will rename this TAG_GROUP - ACE_DEBUG ((LM_DEBUG,"%d (TAG_GROUP)\n", tag)); - ACE_DEBUG ((LM_DEBUG, "%{%{")); - cat_tag_group (stream); - ACE_DEBUG ((LM_DEBUG, "%}%}")); - } else if (tag == IOP::TAG_FT_PRIMARY) { //@@ PortableGroup will rename this TAG_PRIMARY - ACE_DEBUG ((LM_DEBUG,"%d (TAG_PRIMARY)\n", tag)); - ACE_DEBUG ((LM_DEBUG, "%{%{")); - cat_octet_seq ("TAG_PRIMARY", stream); - ACE_DEBUG ((LM_DEBUG, "%}%}")); } else { ACE_DEBUG ((LM_DEBUG,"%d\n", tag)); ACE_DEBUG ((LM_DEBUG, "%{%{")); @@ -1163,6 +1157,7 @@ cat_uiop_profile (TAO_InputCDR& stream) return 1; } +#if 0 static CORBA::Boolean cat_sciop_profile (TAO_InputCDR& stream) { @@ -1253,3 +1248,4 @@ cat_sciop_profile (TAO_InputCDR& stream) return 1; } +#endif /*if 0*/ |