diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-04-02 00:58:58 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-04-02 00:58:58 +0000 |
commit | 25a0b7a7b6efc5797e4704aa8b61642c24aa3223 (patch) | |
tree | afd6ba7d534a0413c9f9c5f5bcd99b8d5ba06111 /TAO/tao/PortableServer/ImplRepoS.h | |
parent | 441b2bc277f0219a7b699193834a9a7a937d875e (diff) | |
download | ATCD-25a0b7a7b6efc5797e4704aa8b61642c24aa3223.tar.gz |
ChangeLogTag:Sun Apr 1 17:44:30 2001 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'TAO/tao/PortableServer/ImplRepoS.h')
-rw-r--r-- | TAO/tao/PortableServer/ImplRepoS.h | 2237 |
1 files changed, 1647 insertions, 590 deletions
diff --git a/TAO/tao/PortableServer/ImplRepoS.h b/TAO/tao/PortableServer/ImplRepoS.h index b90e32dea43..86c5de08e92 100644 --- a/TAO/tao/PortableServer/ImplRepoS.h +++ b/TAO/tao/PortableServer/ImplRepoS.h @@ -1,24 +1,42 @@ -/* -*- C++ -*- $Id$ */ - -// ****** Code generated by the The ACE ORB (TAO) IDL Compiler ******* -// TAO and the TAO IDL Compiler have been developed by the Center for -// Distributed Object Computing at Washington University, St. Louis. +// -*- 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/ // // Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html +// http://www.cs.wustl.edu/~schmidt/TAO.html -#ifndef _TAO_IDL_IMPLREPOS_H_ -#define _TAO_IDL_IMPLREPOS_H_ -#include "ace/pre.h" +#ifndef _TAO_IDL_ORIG_IMPLREPOS_H_ +#define _TAO_IDL_ORIG_IMPLREPOS_H_ +#include "ace/pre.h" #include "ImplRepoC.h" -#include "Servant_Base.h" -#include "PortableServerC.h" + #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "tao/PortableServer/PortableServer.h" +#include "tao/PortableServer/Servant_Base.h" +#include "tao/PortableServer/Collocated_Object.h" +#include "tao/PortableServer/ThruPOA_Object_Proxy_Impl.h" +#include "tao/PortableServer/Direct_Object_Proxy_Impl.h" +#include "tao/PortableServer/ServerRequestInfo.h" + #if defined(_MSC_VER) #if (_MSC_VER >= 1200) #pragma warning(push) @@ -26,10 +44,19 @@ #pragma warning(disable:4250) #endif /* _MSC_VER */ +#if defined (__BORLANDC__) +#pragma option push -w-rvl -w-rch -w-ccc -w-inl +#endif /* __BORLANDC__ */ + TAO_NAMESPACE POA_ImplementationRepository { class ServerObject; typedef ServerObject *ServerObject_ptr; + // Forward Classes Declaration + 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: @@ -66,6 +93,14 @@ TAO_NAMESPACE POA_ImplementationRepository TAO_default_environment () ); + static void _interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + virtual void _dispatch ( TAO_ServerRequest &_tao_req, void *_tao_context, @@ -113,792 +148,1810 @@ TAO_NAMESPACE POA_ImplementationRepository ); - }; +#if (TAO_HAS_INTERCEPTORS == 1) + // Generation of interceptors related RequestInfo classes per operation. + // This needed to be able to store the arguments, exceptions, contexts + // and build the lists dynamically on demand so that unnecessary time overhead + // of building these lists when they arent used is avoided. + class TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::ServerObject; + TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::ServerObject *tao_impl, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + virtual Dynamic::ParameterList * arguments ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVEROBJECT___THRU_POA_COLLOCATED_SH_) -#define _IMPLEMENTATIONREPOSITORY_SERVEROBJECT___THRU_POA_COLLOCATED_SH_ + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - class TAO_PortableServer_Export _tao_thru_poa_collocated_ServerObject : public virtual ::ImplementationRepository::ServerObject - { - public: - _tao_thru_poa_collocated_ServerObject ( - TAO_Stub *stub - ); - virtual CORBA::Boolean _is_a( - const CORBA::Char *logical_type_id, - CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () - ); + virtual CORBA::Any * result ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual CORBA::Boolean _non_existent( - CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () - ); + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void ping ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void shutdown ( + 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; + + }; + + class TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::ServerObject; + TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::ServerObject *tao_impl, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + ); - }; + virtual Dynamic::ParameterList * arguments ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); -#endif /* end #if !defined */ + virtual CORBA::Any * result ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); -#if defined (ACE_HAS_USING_KEYWORD) - // TIE class: Refer to CORBA v2.2, Section 20.34.4 - template <class T> - class TAO_PortableServer_Export ServerObject_tie : public ServerObject - { - public: - ServerObject_tie (T &t); - // the T& ctor - ServerObject_tie (T &t, PortableServer::POA_ptr poa); - // ctor taking a POA - ServerObject_tie (T *tp, CORBA::Boolean release=1); - // ctor taking pointer and an ownership flag - ServerObject_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); - // ctor with T*, ownership flag and a POA - ~ServerObject_tie (void); - // dtor - - // TIE specific functions - T *_tied_object (void); - // return the underlying object - void _tied_object (T &obj); - // set the underlying object - void _tied_object (T *obj, CORBA::Boolean release=1); - // set the underlying object and the ownership flag - CORBA::Boolean _is_owner (void); - // do we own it - void _is_owner (CORBA::Boolean b); - // set the ownership - - // overridden ServantBase operations - PortableServer::POA_ptr _default_POA ( - CORBA::Environment &env = - TAO_default_environment () - ); - void ping ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); - void shutdown ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - 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: - T *ptr_; - PortableServer::POA_var poa_; - CORBA::Boolean rel_; + private: + POA_ImplementationRepository::ServerObject *_tao_impl; + + }; + + #endif /* TAO_HAS_INTERCEPTORS */ - // copy and assignment are not allowed - ServerObject_tie (const ServerObject_tie &); - void operator= (const ServerObject_tie &); }; -#endif /* ACE_HAS_USING_KEYWORD */ - class Administration; - typedef Administration *Administration_ptr; - class TAO_PortableServer_Export Administration : public virtual PortableServer::ServantBase + /////////////////////////////////////////////////////////////////////// + // Strategized Proxy Broker Declaration + // + + class TAO_PortableServer_Export _TAO_ServerObject_Strategized_Proxy_Broker : public virtual ::ImplementationRepository::_TAO_ServerObject_Proxy_Broker { - protected: - Administration (void); + public: + _TAO_ServerObject_Strategized_Proxy_Broker (void); + + virtual ~_TAO_ServerObject_Strategized_Proxy_Broker (void); + + virtual ::ImplementationRepository::_TAO_ServerObject_Proxy_Impl &select_proxy ( + ::ImplementationRepository::ServerObject *object, + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ); + + private: + + // Helper methods that takes care to create the proxy + // as soon as their use is necessary. + void create_proxy ( + int collocation_strategy, + CORBA::Environment &ACE_TRY_ENV + ); + + private: + + // Caches the proxy implementations. The proxy implementation + // are totally stateless, and those can be shared by all the + // instances of a given IDL interface type. + ::ImplementationRepository::_TAO_ServerObject_Proxy_Impl + *proxy_cache_[TAO_Collocation_Strategies::CS_LAST]; + + TAO_SYNCH_MUTEX mutex_; + // This funxtion is used to get an handle to the unique instance + // of the Strategized Proxy Broker that is available for a given + // interface. public: - Administration (const Administration& rhs); - virtual ~Administration (void); + static _TAO_ServerObject_Strategized_Proxy_Broker *the_TAO_ServerObject_Strategized_Proxy_Broker (void); + }; - virtual CORBA::Boolean _is_a ( - const char* logical_type_id, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + // + // End Strategized Proxy Broker Declaration + /////////////////////////////////////////////////////////////////////// - virtual void* _downcast ( - const char* logical_type_id - ); - static void _is_a_skel ( - TAO_ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// - static void _non_existent_skel ( - TAO_ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +class TAO_PortableServer_Export _TAO_ServerObject_ThruPOA_Proxy_Impl : + public virtual ::ImplementationRepository::_TAO_ServerObject_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl +{ +public: + _TAO_ServerObject_ThruPOA_Proxy_Impl (void); - virtual void _dispatch ( - TAO_ServerRequest &_tao_req, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + virtual ~_TAO_ServerObject_ThruPOA_Proxy_Impl (void) { } - ::ImplementationRepository::Administration *_this ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + virtual void ping ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); - virtual const char* _interface_repository_id (void) const; + virtual void shutdown ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); - virtual void activate_server ( - const char * server, +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// Direct Impl. Declaration +// + +class TAO_PortableServer_Export _TAO_ServerObject_Direct_Proxy_Impl : + public virtual ImplementationRepository::_TAO_ServerObject_Proxy_Impl, + public virtual TAO_Direct_Object_Proxy_Impl +{ +public: + _TAO_ServerObject_Direct_Proxy_Impl (void); + + virtual ~_TAO_ServerObject_Direct_Proxy_Impl (void) { } + + virtual void ping ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual void shutdown ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// Direct Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class TAO_PortableServer_Export ServerObject_tie : public ServerObject +{ +public: + ServerObject_tie (T &t); + // the T& ctor + ServerObject_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + ServerObject_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + ServerObject_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~ServerObject_tie (void); + // dtor + + // TIE specific functions + T *_tied_object (void); + // return the underlying object + void _tied_object (T &obj); + // set the underlying object + void _tied_object (T *obj, CORBA::Boolean release=1); + // set the underlying object and the ownership flag + CORBA::Boolean _is_owner (void); + // do we own it + void _is_owner (CORBA::Boolean b); + // set the ownership + + // overridden ServantBase operations + PortableServer::POA_ptr _default_POA ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + void ping ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void shutdown ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +private: + T *ptr_; + PortableServer::POA_var poa_; + CORBA::Boolean rel_; + + // copy and assignment are not allowed + ServerObject_tie (const ServerObject_tie &); + void operator= (const ServerObject_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class Administration; +typedef Administration *Administration_ptr; +// Forward Classes Declaration +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: + Administration (const Administration& rhs); + virtual ~Administration (void); + + + virtual CORBA::Boolean _is_a ( + const char* logical_type_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void* _downcast ( + const char* logical_type_id + ); + + static void _is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _non_existent_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::ImplementationRepository::Administration *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual void activate_server ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound, + ImplementationRepository::Administration::CannotActivate + )) = 0; + + static void activate_server_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void register_server ( + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::AlreadyRegistered + )) = 0; + + static void register_server_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void reregister_server ( + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void reregister_server_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void remove_server ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )) = 0; + + static void remove_server_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void shutdown_server ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )) = 0; + + static void shutdown_server_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual char * server_is_running ( + const char * server, + const char * addr, + ImplementationRepository::ServerObject_ptr server_object, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )) = 0; + + static void server_is_running_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void server_is_shutting_down ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )) = 0; + + static void server_is_shutting_down_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void find ( + const char * server, + ImplementationRepository::ServerInformation_out info, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )) = 0; + + static void find_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void list ( + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + ImplementationRepository::ServerInformationIterator_out server_iterator, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void list_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + +#if (TAO_HAS_INTERCEPTORS == 1) + // Generation of interceptors related RequestInfo classes per operation. + // This needed to be able to store the arguments, exceptions, contexts + // and build the lists dynamically on demand so that unnecessary time overhead + // of building these lists when they arent used is avoided. + class TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound, - ImplementationRepository::Administration::CannotActivate - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void activate_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ); + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void register_server ( - const char * server, - const ImplementationRepository::StartupOptions & options, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::AlreadyRegistered - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void register_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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_; + + }; - virtual void reregister_server ( - const char * server, - const ImplementationRepository::StartupOptions & options, + class TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void reregister_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ); + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void remove_server ( - const char * server, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void remove_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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 &); - virtual void shutdown_server ( - const char * server, + private: + POA_ImplementationRepository::Administration *_tao_impl; + const char * server_; + const ImplementationRepository::StartupOptions & options_; + + }; + + class TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void shutdown_server_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ); + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual char * server_is_running ( - const char * server, - const char * addr, - ImplementationRepository::ServerObject_ptr server_object, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void server_is_running_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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_; + + }; + + class TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); - virtual void server_is_shutting_down ( - const char * server, + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void server_is_shutting_down_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ); + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void find ( - const char * server, - ImplementationRepository::ServerInformation_out info, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void find_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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_; + + }; + + class TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ); + ) + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void list ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; + ACE_THROW_SPEC ((CORBA::SystemException)); - static void list_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () - ); + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); - }; + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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_; -#if !defined (_IMPLEMENTATIONREPOSITORY_ADMINISTRATION___THRU_POA_COLLOCATED_SH_) -#define _IMPLEMENTATIONREPOSITORY_ADMINISTRATION___THRU_POA_COLLOCATED_SH_ + }; - class TAO_PortableServer_Export _tao_thru_poa_collocated_Administration - : public virtual ::ImplementationRepository::Administration + class TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running : public TAO_ServerRequestInfo { public: - _tao_thru_poa_collocated_Administration ( - TAO_Stub *stub - ); - virtual CORBA::Boolean _is_a( - const CORBA::Char *logical_type_id, - CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () - ); + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + const char * addr, + ImplementationRepository::ServerObject_ptr server_object, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); - virtual CORBA::Boolean _non_existent( - CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () - ); - - virtual void activate_server ( - const char * server, + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound, - ImplementationRepository::Administration::CannotActivate - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void register_server ( - const char * server, - const ImplementationRepository::StartupOptions & options, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::AlreadyRegistered - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void reregister_server ( - const char * server, - const ImplementationRepository::StartupOptions & options, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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_; + void result (char * result); + // update the result + char * _result; + }; + + class TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); - virtual void remove_server ( - const char * server, + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void shutdown_server ( - const char * server, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual char * server_is_running ( - const char * server, - const char * addr, - ImplementationRepository::ServerObject_ptr server_object, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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 &); - virtual void server_is_shutting_down ( - const char * server, + private: + POA_ImplementationRepository::Administration *_tao_impl; + const char * server_; + + }; + + class TAO_ServerRequestInfo_ImplementationRepository_Administration_find : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_find ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void find ( - const char * server, - ImplementationRepository::ServerInformation_out info, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void list ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - }; + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); -#endif /* end #if !defined */ + 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_; -#if defined (ACE_HAS_USING_KEYWORD) - // TIE class: Refer to CORBA v2.2, Section 20.34.4 - template <class T> - class TAO_PortableServer_Export Administration_tie : public Administration + }; + + class TAO_ServerRequestInfo_ImplementationRepository_Administration_list : public TAO_ServerRequestInfo { public: - Administration_tie (T &t); - // the T& ctor - Administration_tie (T &t, PortableServer::POA_ptr poa); - // ctor taking a POA - Administration_tie (T *tp, CORBA::Boolean release=1); - // ctor taking pointer and an ownership flag - Administration_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); - // ctor with T*, ownership flag and a POA - ~Administration_tie (void); - // dtor - - // TIE specific functions - T *_tied_object (void); - // return the underlying object - void _tied_object (T &obj); - // set the underlying object - void _tied_object (T *obj, CORBA::Boolean release=1); - // set the underlying object and the ownership flag - CORBA::Boolean _is_owner (void); - // do we own it - void _is_owner (CORBA::Boolean b); - // set the ownership - - // overridden ServantBase operations - PortableServer::POA_ptr _default_POA ( - CORBA::Environment &env = - TAO_default_environment () - ); - void activate_server ( - const char * server, + friend class POA_ImplementationRepository::Administration; + TAO_ServerRequestInfo_ImplementationRepository_Administration_list ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::Administration *tao_impl, + const CORBA::ULong & how_many +, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound, - ImplementationRepository::Administration::CannotActivate - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - void register_server ( - const char * server, - const ImplementationRepository::StartupOptions & options, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::AlreadyRegistered - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - void reregister_server ( - const char * server, - const ImplementationRepository::StartupOptions & options, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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_; + + + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class TAO_PortableServer_Export _TAO_Administration_Strategized_Proxy_Broker : public virtual ::ImplementationRepository::_TAO_Administration_Proxy_Broker +{ +public: + _TAO_Administration_Strategized_Proxy_Broker (void); + + virtual ~_TAO_Administration_Strategized_Proxy_Broker (void); - void remove_server ( - const char * server, + virtual ::ImplementationRepository::_TAO_Administration_Proxy_Impl &select_proxy ( + ::ImplementationRepository::Administration *object, + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ); + +private: + +// Helper methods that takes care to create the proxy +// as soon as their use is necessary. + void create_proxy ( + int collocation_strategy, + CORBA::Environment &ACE_TRY_ENV + ); + +private: + + // Caches the proxy implementations. The proxy implementation + // are totally stateless, and those can be shared by all the + // instances of a given IDL interface type. + ::ImplementationRepository::_TAO_Administration_Proxy_Impl + *proxy_cache_[TAO_Collocation_Strategies::CS_LAST]; + + TAO_SYNCH_MUTEX mutex_; +// This funxtion is used to get an handle to the unique instance +// of the Strategized Proxy Broker that is available for a given +// interface. + +public: + static _TAO_Administration_Strategized_Proxy_Broker *the_TAO_Administration_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class TAO_PortableServer_Export _TAO_Administration_ThruPOA_Proxy_Impl : + public virtual ::ImplementationRepository::_TAO_Administration_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl +{ +public: + _TAO_Administration_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_Administration_ThruPOA_Proxy_Impl (void) { } + + virtual void activate_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound, + ImplementationRepository::Administration::CannotActivate + )); + + virtual void register_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::AlreadyRegistered + )); + + virtual void reregister_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual void remove_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void shutdown_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual char * server_is_running ( + CORBA_Object *_collocated_tao_target_, + const char * server, + const char * addr, + ImplementationRepository::ServerObject_ptr server_object, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void server_is_shutting_down ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void find ( + CORBA_Object *_collocated_tao_target_, + const char * server, + ImplementationRepository::ServerInformation_out info, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void list ( + CORBA_Object *_collocated_tao_target_, + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + ImplementationRepository::ServerInformationIterator_out server_iterator, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// Direct Impl. Declaration +// + +class TAO_PortableServer_Export _TAO_Administration_Direct_Proxy_Impl : + public virtual ImplementationRepository::_TAO_Administration_Proxy_Impl, + public virtual TAO_Direct_Object_Proxy_Impl +{ +public: + _TAO_Administration_Direct_Proxy_Impl (void); + + virtual ~_TAO_Administration_Direct_Proxy_Impl (void) { } + + virtual void activate_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound, + ImplementationRepository::Administration::CannotActivate + )); + + virtual void register_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::AlreadyRegistered + )); + + virtual void reregister_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual void remove_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void shutdown_server ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual char * server_is_running ( + CORBA_Object *_collocated_tao_target_, + const char * server, + const char * addr, + ImplementationRepository::ServerObject_ptr server_object, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void server_is_shutting_down ( + CORBA_Object *_collocated_tao_target_, + const char * server, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void find ( + CORBA_Object *_collocated_tao_target_, + const char * server, + ImplementationRepository::ServerInformation_out info, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + virtual void list ( + CORBA_Object *_collocated_tao_target_, + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + ImplementationRepository::ServerInformationIterator_out server_iterator, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// Direct Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class TAO_PortableServer_Export Administration_tie : public Administration +{ +public: + Administration_tie (T &t); + // the T& ctor + Administration_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + Administration_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + Administration_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~Administration_tie (void); + // dtor + + // TIE specific functions + T *_tied_object (void); + // return the underlying object + void _tied_object (T &obj); + // set the underlying object + void _tied_object (T *obj, CORBA::Boolean release=1); + // set the underlying object and the ownership flag + CORBA::Boolean _is_owner (void); + // do we own it + void _is_owner (CORBA::Boolean b); + // set the ownership + + // overridden ServantBase operations + PortableServer::POA_ptr _default_POA ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + void activate_server ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound, + ImplementationRepository::Administration::CannotActivate + )); + + void register_server ( + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::AlreadyRegistered + )); + + void reregister_server ( + const char * server, + const ImplementationRepository::StartupOptions & options, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void remove_server ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + void shutdown_server ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + char * server_is_running ( + const char * server, + const char * addr, + ImplementationRepository::ServerObject_ptr server_object, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + void server_is_shutting_down ( + const char * server, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + void find ( + const char * server, + ImplementationRepository::ServerInformation_out info, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException, + ImplementationRepository::Administration::NotFound + )); + + void list ( + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + ImplementationRepository::ServerInformationIterator_out server_iterator, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +private: + T *ptr_; + PortableServer::POA_var poa_; + CORBA::Boolean rel_; + + // copy and assignment are not allowed + Administration_tie (const Administration_tie &); + void operator= (const Administration_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class ServerInformationIterator; +typedef ServerInformationIterator *ServerInformationIterator_ptr; +// Forward Classes Declaration +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: + ServerInformationIterator (const ServerInformationIterator& rhs); + virtual ~ServerInformationIterator (void); + + + virtual CORBA::Boolean _is_a ( + const char* logical_type_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void* _downcast ( + const char* logical_type_id + ); + + static void _is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _non_existent_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::ImplementationRepository::ServerInformationIterator *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual CORBA::Boolean next_n ( + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void next_n_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void destroy ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void destroy_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + +#if (TAO_HAS_INTERCEPTORS == 1) + // Generation of interceptors related RequestInfo classes per operation. + // This needed to be able to store the arguments, exceptions, contexts + // and build the lists dynamically on demand so that unnecessary time overhead + // of building these lists when they arent used is avoided. + class TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::ServerInformationIterator; + TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::ServerInformationIterator *tao_impl, + const CORBA::ULong & how_many, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - void shutdown_server ( - const char * server, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - char * server_is_running ( - const char * server, - const char * addr, - ImplementationRepository::ServerObject_ptr server_object, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_; + void result (CORBA::Boolean result); + // update the result + CORBA::Boolean _result; + }; + + class TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy : public TAO_ServerRequestInfo + { + public: + friend class POA_ImplementationRepository::ServerInformationIterator; + TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy ( + TAO_ServerRequest &_tao_server_request, + POA_ImplementationRepository::ServerInformationIterator *tao_impl, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); - void server_is_shutting_down ( - const char * server, + virtual Dynamic::ParameterList * arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - void find ( - const char * server, - ImplementationRepository::ServerInformation_out info, + virtual Dynamic::ExceptionList * exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException, - ImplementationRepository::Administration::NotFound - )); + ACE_THROW_SPEC ((CORBA::SystemException)); - void list ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - ImplementationRepository::ServerInformationIterator_out server_iterator, + virtual CORBA::Any * result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment () ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); + ACE_THROW_SPEC ((CORBA::SystemException)); -private: - T *ptr_; - PortableServer::POA_var poa_; - CORBA::Boolean rel_; + virtual char * target_most_derived_interface ( + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Boolean target_is_a ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) + 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; - // copy and assignment are not allowed - Administration_tie (const Administration_tie &); - void operator= (const Administration_tie &); }; -#endif /* ACE_HAS_USING_KEYWORD */ + #endif /* TAO_HAS_INTERCEPTORS */ - class ServerInformationIterator; - typedef ServerInformationIterator *ServerInformationIterator_ptr; - class TAO_PortableServer_Export ServerInformationIterator : public virtual PortableServer::ServantBase - { - protected: - ServerInformationIterator (void); +}; - public: - ServerInformationIterator (const ServerInformationIterator& rhs); - virtual ~ServerInformationIterator (void); +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// - virtual CORBA::Boolean _is_a ( - const char* logical_type_id, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +class TAO_PortableServer_Export _TAO_ServerInformationIterator_Strategized_Proxy_Broker : public virtual ::ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Broker +{ +public: + _TAO_ServerInformationIterator_Strategized_Proxy_Broker (void); - virtual void* _downcast ( - const char* logical_type_id - ); + virtual ~_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void); - static void _is_a_skel ( - TAO_ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); + virtual ::ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Impl &select_proxy ( + ::ImplementationRepository::ServerInformationIterator *object, + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ); - static void _non_existent_skel ( - TAO_ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +private: - virtual void _dispatch ( - TAO_ServerRequest &_tao_req, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +// Helper methods that takes care to create the proxy +// as soon as their use is necessary. + void create_proxy ( + int collocation_strategy, + CORBA::Environment &ACE_TRY_ENV + ); - ::ImplementationRepository::ServerInformationIterator *_this ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +private: - virtual const char* _interface_repository_id (void) const; + // Caches the proxy implementations. The proxy implementation + // are totally stateless, and those can be shared by all the + // instances of a given IDL interface type. + ::ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Impl + *proxy_cache_[TAO_Collocation_Strategies::CS_LAST]; - virtual CORBA::Boolean next_n ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; + TAO_SYNCH_MUTEX mutex_; +// This funxtion is used to get an handle to the unique instance +// of the Strategized Proxy Broker that is available for a given +// interface. - static void next_n_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +public: + static _TAO_ServerInformationIterator_Strategized_Proxy_Broker *the_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void); +}; - virtual void destroy ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) = 0; - static void destroy_skel ( - TAO_ServerRequest &_tao_req, - void *_tao_obj, - void *_tao_context, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ); +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// - }; +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// +class TAO_PortableServer_Export _TAO_ServerInformationIterator_ThruPOA_Proxy_Impl : + public virtual ::ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl +{ +public: + _TAO_ServerInformationIterator_ThruPOA_Proxy_Impl (void); -#if !defined (_IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR___THRU_POA_COLLOCATED_SH_) -#define _IMPLEMENTATIONREPOSITORY_SERVERINFORMATIONITERATOR___THRU_POA_COLLOCATED_SH_ + virtual ~_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl (void) { } - class TAO_PortableServer_Export _tao_thru_poa_collocated_ServerInformationIterator - : public virtual ::ImplementationRepository::ServerInformationIterator - { - public: - _tao_thru_poa_collocated_ServerInformationIterator ( - TAO_Stub *stub - ); - virtual CORBA::Boolean _is_a( - const CORBA::Char *logical_type_id, - CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () - ); + virtual CORBA::Boolean next_n ( + CORBA_Object *_collocated_tao_target_, + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual void destroy ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; - virtual CORBA::Boolean _non_existent( - CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () - ); - virtual CORBA::Boolean next_n ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// - virtual void destroy ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - }; +/////////////////////////////////////////////////////////////////////// +// Direct Impl. Declaration +// +class TAO_PortableServer_Export _TAO_ServerInformationIterator_Direct_Proxy_Impl : + public virtual ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Impl, + public virtual TAO_Direct_Object_Proxy_Impl +{ +public: + _TAO_ServerInformationIterator_Direct_Proxy_Impl (void); -#endif /* end #if !defined */ + virtual ~_TAO_ServerInformationIterator_Direct_Proxy_Impl (void) { } + virtual CORBA::Boolean next_n ( + CORBA_Object *_collocated_tao_target_, + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual void destroy ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; -#if defined (ACE_HAS_USING_KEYWORD) - // TIE class: Refer to CORBA v2.2, Section 20.34.4 - template <class T> - class TAO_PortableServer_Export ServerInformationIterator_tie : public ServerInformationIterator - { - public: - ServerInformationIterator_tie (T &t); - // the T& ctor - ServerInformationIterator_tie (T &t, PortableServer::POA_ptr poa); - // ctor taking a POA - ServerInformationIterator_tie (T *tp, CORBA::Boolean release=1); - // ctor taking pointer and an ownership flag - ServerInformationIterator_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); - // ctor with T*, ownership flag and a POA - ~ServerInformationIterator_tie (void); - // dtor - - // TIE specific functions - T *_tied_object (void); - // return the underlying object - void _tied_object (T &obj); - // set the underlying object - void _tied_object (T *obj, CORBA::Boolean release=1); - // set the underlying object and the ownership flag - CORBA::Boolean _is_owner (void); - // do we own it - void _is_owner (CORBA::Boolean b); - // set the ownership - - // overridden ServantBase operations - PortableServer::POA_ptr _default_POA ( - CORBA::Environment &env = - TAO_default_environment () - ); - CORBA::Boolean next_n ( - CORBA::ULong how_many, - ImplementationRepository::ServerInformationList_out server_list, - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - void destroy ( - CORBA::Environment &ACE_TRY_ENV = - TAO_default_environment () - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); +// +// Direct Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class TAO_PortableServer_Export ServerInformationIterator_tie : public ServerInformationIterator +{ +public: + ServerInformationIterator_tie (T &t); + // the T& ctor + ServerInformationIterator_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + ServerInformationIterator_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + ServerInformationIterator_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~ServerInformationIterator_tie (void); + // dtor + + // TIE specific functions + T *_tied_object (void); + // return the underlying object + void _tied_object (T &obj); + // set the underlying object + void _tied_object (T *obj, CORBA::Boolean release=1); + // set the underlying object and the ownership flag + CORBA::Boolean _is_owner (void); + // do we own it + void _is_owner (CORBA::Boolean b); + // set the ownership + + // overridden ServantBase operations + PortableServer::POA_ptr _default_POA ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + CORBA::Boolean next_n ( + CORBA::ULong how_many, + ImplementationRepository::ServerInformationList_out server_list, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void destroy ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); private: - T *ptr_; - PortableServer::POA_var poa_; - CORBA::Boolean rel_; + T *ptr_; + PortableServer::POA_var poa_; + CORBA::Boolean rel_; - // copy and assignment are not allowed - ServerInformationIterator_tie (const ServerInformationIterator_tie &); - void operator= (const ServerInformationIterator_tie &); - }; + // copy and assignment are not allowed + ServerInformationIterator_tie (const ServerInformationIterator_tie &); + void operator= (const ServerInformationIterator_tie &); +}; #endif /* ACE_HAS_USING_KEYWORD */ @@ -915,5 +1968,9 @@ TAO_NAMESPACE_CLOSE #pragma warning(pop) #endif /* _MSC_VER */ +#if defined (__BORLANDC__) +#pragma option pop +#endif /* __BORLANDC__ */ + #include "ace/post.h" #endif /* ifndef */ |