diff options
Diffstat (limited to 'TAO/orbsvcs/IFR_Service/IFR_ComponentsS.h')
-rw-r--r-- | TAO/orbsvcs/IFR_Service/IFR_ComponentsS.h | 9368 |
1 files changed, 9368 insertions, 0 deletions
diff --git a/TAO/orbsvcs/IFR_Service/IFR_ComponentsS.h b/TAO/orbsvcs/IFR_Service/IFR_ComponentsS.h new file mode 100644 index 00000000000..9faabd4fd95 --- /dev/null +++ b/TAO/orbsvcs/IFR_Service/IFR_ComponentsS.h @@ -0,0 +1,9368 @@ +// -*- 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 + +#ifndef TAO_IDL_IFR_COMPONENTSS_H +#define TAO_IDL_IFR_COMPONENTSS_H + +#include "ace/pre.h" +#include "tao/IFR_Client/IFR_ComponentsC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "IFR_ExtendedS.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_NAMESPACE POA_IR +{ + class ComponentRepository; + typedef ComponentRepository *ComponentRepository_ptr; + // Forward Classes Declaration + class _TAO_ComponentRepository_ThruPOA_Proxy_Impl; + class _TAO_ComponentRepository_Strategized_Proxy_Broker; + + class ComponentRepository : public virtual POA_CORBA::Repository + { + protected: + ComponentRepository (void); + + public: + ComponentRepository (const ComponentRepository& rhs); + virtual ~ComponentRepository (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::ComponentRepository *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual IR::ComponentDef_ptr create_component ( + const char * id, + const char * name, + const char * version, + IR::ComponentDef_ptr base_component, + const CORBA::InterfaceDefSeq & supports_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_component_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::HomeDef_ptr create_home ( + const char * id, + const char * name, + const char * version, + IR::HomeDef_ptr base_home, + IR::ComponentDef_ptr managed_component, + CORBA::ValueDef_ptr primary_key, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_home_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void get_canonical_typecode_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void get_primitive_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_string_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_wstring_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_sequence_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_array_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_fixed_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void contents_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_contents_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_module_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_constant_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_struct_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_union_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_enum_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_alias_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_value_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_value_box_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_exception_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_native_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_abstract_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_local_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_ComponentRepository_create_component : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentRepository; + TAO_ServerRequestInfo_IR_ComponentRepository_create_component ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentRepository *tao_impl, + const char * id, + const char * name, + const char * version, + IR::ComponentDef_ptr base_component, + const CORBA::InterfaceDefSeq & supports_interfaces, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentRepository_create_component (const TAO_ServerRequestInfo_IR_ComponentRepository_create_component &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentRepository_create_component &); + + private: + POA_IR::ComponentRepository *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + IR::ComponentDef_ptr base_component_; + const CORBA::InterfaceDefSeq & supports_interfaces_; + void result (IR::ComponentDef_ptr result); + // update the result + IR::ComponentDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentRepository_create_home : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentRepository; + TAO_ServerRequestInfo_IR_ComponentRepository_create_home ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentRepository *tao_impl, + const char * id, + const char * name, + const char * version, + IR::HomeDef_ptr base_home, + IR::ComponentDef_ptr managed_component, + CORBA::ValueDef_ptr primary_key, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentRepository_create_home (const TAO_ServerRequestInfo_IR_ComponentRepository_create_home &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentRepository_create_home &); + + private: + POA_IR::ComponentRepository *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + IR::HomeDef_ptr base_home_; + IR::ComponentDef_ptr managed_component_; + CORBA::ValueDef_ptr primary_key_; + void result (IR::HomeDef_ptr result); + // update the result + IR::HomeDef_ptr _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + + }; + + + /////////////////////////////////////////////////////////////////////// + // Strategized Proxy Broker Declaration + // + + class _TAO_ComponentRepository_Strategized_Proxy_Broker : public virtual ::IR::_TAO_ComponentRepository_Proxy_Broker + { + public: + _TAO_ComponentRepository_Strategized_Proxy_Broker (void); + + virtual ~_TAO_ComponentRepository_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_ComponentRepository_Proxy_Impl &select_proxy ( + ::IR::ComponentRepository *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 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. + ::IR::_TAO_ComponentRepository_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_ComponentRepository_Strategized_Proxy_Broker *the_TAO_ComponentRepository_Strategized_Proxy_Broker (void); + }; + + + // + // End Strategized Proxy Broker Declaration + /////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_ComponentRepository_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_ComponentRepository_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_Repository_ThruPOA_Proxy_Impl + +{ +public: + _TAO_ComponentRepository_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_ComponentRepository_ThruPOA_Proxy_Impl (void) { } + + virtual IR::ComponentDef_ptr create_component ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + IR::ComponentDef_ptr base_component, + const CORBA::InterfaceDefSeq & supports_interfaces, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::HomeDef_ptr create_home ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + IR::HomeDef_ptr base_home, + IR::ComponentDef_ptr managed_component, + CORBA::ValueDef_ptr primary_key, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class ComponentRepository_tie : public ComponentRepository +{ +public: + ComponentRepository_tie (T &t); + // the T& ctor + ComponentRepository_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + ComponentRepository_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + ComponentRepository_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~ComponentRepository_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 () + ); + IR::ComponentDef_ptr create_component ( + const char * id, + const char * name, + const char * version, + IR::ComponentDef_ptr base_component, + const CORBA::InterfaceDefSeq & supports_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::HomeDef_ptr create_home ( + const char * id, + const char * name, + const char * version, + IR::HomeDef_ptr base_home, + IR::ComponentDef_ptr managed_component, + CORBA::ValueDef_ptr primary_key, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained_ptr lookup_id ( + const char * search_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::TypeCode_ptr get_canonical_typecode ( + CORBA::TypeCode_ptr tc, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::PrimitiveDef_ptr get_primitive ( + CORBA::PrimitiveKind kind, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::StringDef_ptr create_string ( + CORBA::ULong bound, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::WstringDef_ptr create_wstring ( + CORBA::ULong bound, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::SequenceDef_ptr create_sequence ( + CORBA::ULong bound, + CORBA::IDLType_ptr element_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ArrayDef_ptr create_array ( + CORBA::ULong length, + CORBA::IDLType_ptr element_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::FixedDef_ptr create_fixed ( + CORBA::UShort digits, + CORBA::Short scale, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained_ptr lookup ( + const char * search_name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContainedSeq * contents ( + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContainedSeq * lookup_name ( + const char * search_name, + CORBA::Long levels_to_search, + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container::DescriptionSeq * describe_contents ( + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Long max_returned_objs, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ModuleDef_ptr create_module ( + const char * id, + const char * name, + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ConstantDef_ptr create_constant ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr type, + const CORBA::Any & value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::StructDef_ptr create_struct ( + const char * id, + const char * name, + const char * version, + const CORBA::StructMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::UnionDef_ptr create_union ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr discriminator_type, + const CORBA::UnionMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::EnumDef_ptr create_enum ( + const char * id, + const char * name, + const char * version, + const CORBA::EnumMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AliasDef_ptr create_alias ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr original_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDef_ptr create_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr create_value ( + const char * id, + const char * name, + const char * version, + CORBA::Boolean is_custom, + CORBA::Boolean is_abstract, + CORBA::ValueDef_ptr base_value, + CORBA::Boolean is_truncatable, + const CORBA::ValueDefSeq & abstract_base_values, + const CORBA::InterfaceDefSeq & supported_interfaces, + const CORBA::InitializerSeq & initializers, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueBoxDef_ptr create_value_box ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr original_type_def, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ExceptionDef_ptr create_exception ( + const char * id, + const char * name, + const char * version, + const CORBA::StructMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::NativeDef_ptr create_native ( + const char * id, + const char * name, + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AbstractInterfaceDef_ptr create_abstract_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::AbstractInterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::LocalInterfaceDef_ptr create_local_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + ComponentRepository_tie (const ComponentRepository_tie &); + void operator= (const ComponentRepository_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class ProvidesDef; +typedef ProvidesDef *ProvidesDef_ptr; +// Forward Classes Declaration +class _TAO_ProvidesDef_ThruPOA_Proxy_Impl; +class _TAO_ProvidesDef_Strategized_Proxy_Broker; + +class ProvidesDef : public virtual POA_CORBA::Contained +{ +protected: + ProvidesDef (void); + +public: + ProvidesDef (const ProvidesDef& rhs); + virtual ~ProvidesDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::ProvidesDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual CORBA::InterfaceDef_ptr interface_type ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_interface_type_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_ProvidesDef_interface_type_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ProvidesDef; + TAO_ServerRequestInfo_IR_ProvidesDef_interface_type_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ProvidesDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ProvidesDef_interface_type_get (const TAO_ServerRequestInfo_IR_ProvidesDef_interface_type_get &); + void operator= (const TAO_ServerRequestInfo_IR_ProvidesDef_interface_type_get &); + + private: + POA_IR::ProvidesDef *_tao_impl; + void result (CORBA::InterfaceDef_ptr result); + // update the result + CORBA::InterfaceDef_ptr _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_ProvidesDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_ProvidesDef_Proxy_Broker +{ +public: + _TAO_ProvidesDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_ProvidesDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_ProvidesDef_Proxy_Impl &select_proxy ( + ::IR::ProvidesDef *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 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. + ::IR::_TAO_ProvidesDef_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_ProvidesDef_Strategized_Proxy_Broker *the_TAO_ProvidesDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_ProvidesDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_ProvidesDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl + +{ +public: + _TAO_ProvidesDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_ProvidesDef_ThruPOA_Proxy_Impl (void) { } + + virtual CORBA::InterfaceDef_ptr interface_type ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class ProvidesDef_tie : public ProvidesDef +{ +public: + ProvidesDef_tie (T &t); + // the T& ctor + ProvidesDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + ProvidesDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + ProvidesDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~ProvidesDef_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::InterfaceDef_ptr interface_type ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + ProvidesDef_tie (const ProvidesDef_tie &); + void operator= (const ProvidesDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class UsesDef; +typedef UsesDef *UsesDef_ptr; +// Forward Classes Declaration +class _TAO_UsesDef_ThruPOA_Proxy_Impl; +class _TAO_UsesDef_Strategized_Proxy_Broker; + +class UsesDef : public virtual POA_CORBA::Contained +{ +protected: + UsesDef (void); + +public: + UsesDef (const UsesDef& rhs); + virtual ~UsesDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::UsesDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual CORBA::InterfaceDef_ptr interface_type ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_interface_type_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual CORBA::Boolean is_multiple ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_is_multiple_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_UsesDef_interface_type_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::UsesDef; + TAO_ServerRequestInfo_IR_UsesDef_interface_type_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::UsesDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_UsesDef_interface_type_get (const TAO_ServerRequestInfo_IR_UsesDef_interface_type_get &); + void operator= (const TAO_ServerRequestInfo_IR_UsesDef_interface_type_get &); + + private: + POA_IR::UsesDef *_tao_impl; + void result (CORBA::InterfaceDef_ptr result); + // update the result + CORBA::InterfaceDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_UsesDef_is_multiple_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::UsesDef; + TAO_ServerRequestInfo_IR_UsesDef_is_multiple_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::UsesDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_UsesDef_is_multiple_get (const TAO_ServerRequestInfo_IR_UsesDef_is_multiple_get &); + void operator= (const TAO_ServerRequestInfo_IR_UsesDef_is_multiple_get &); + + private: + POA_IR::UsesDef *_tao_impl; + void result (CORBA::Boolean result); + // update the result + CORBA::Boolean _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_UsesDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_UsesDef_Proxy_Broker +{ +public: + _TAO_UsesDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_UsesDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_UsesDef_Proxy_Impl &select_proxy ( + ::IR::UsesDef *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 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. + ::IR::_TAO_UsesDef_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_UsesDef_Strategized_Proxy_Broker *the_TAO_UsesDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_UsesDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_UsesDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl + +{ +public: + _TAO_UsesDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_UsesDef_ThruPOA_Proxy_Impl (void) { } + + virtual CORBA::InterfaceDef_ptr interface_type ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual CORBA::Boolean is_multiple ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class UsesDef_tie : public UsesDef +{ +public: + UsesDef_tie (T &t); + // the T& ctor + UsesDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + UsesDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + UsesDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~UsesDef_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::InterfaceDef_ptr interface_type ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Boolean is_multiple ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + UsesDef_tie (const UsesDef_tie &); + void operator= (const UsesDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class EventDef; +typedef EventDef *EventDef_ptr; +// Forward Classes Declaration +class _TAO_EventDef_ThruPOA_Proxy_Impl; +class _TAO_EventDef_Strategized_Proxy_Broker; + +class EventDef : public virtual POA_CORBA::Contained +{ +protected: + EventDef (void); + +public: + EventDef (const EventDef& rhs); + virtual ~EventDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::EventDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual CORBA::Boolean is_a ( + const char * event_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void is_a_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual CORBA::ValueDef_ptr event ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_event_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_EventDef_is_a : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::EventDef; + TAO_ServerRequestInfo_IR_EventDef_is_a ( + TAO_ServerRequest &_tao_server_request, + POA_IR::EventDef *tao_impl, + const char * event_id, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_EventDef_is_a (const TAO_ServerRequestInfo_IR_EventDef_is_a &); + void operator= (const TAO_ServerRequestInfo_IR_EventDef_is_a &); + + private: + POA_IR::EventDef *_tao_impl; + const char * event_id_; + void result (CORBA::Boolean result); + // update the result + CORBA::Boolean _result; + }; + + class TAO_ServerRequestInfo_IR_EventDef_event_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::EventDef; + TAO_ServerRequestInfo_IR_EventDef_event_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::EventDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_EventDef_event_get (const TAO_ServerRequestInfo_IR_EventDef_event_get &); + void operator= (const TAO_ServerRequestInfo_IR_EventDef_event_get &); + + private: + POA_IR::EventDef *_tao_impl; + void result (CORBA::ValueDef_ptr result); + // update the result + CORBA::ValueDef_ptr _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_EventDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_EventDef_Proxy_Broker +{ +public: + _TAO_EventDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_EventDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_EventDef_Proxy_Impl &select_proxy ( + ::IR::EventDef *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 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. + ::IR::_TAO_EventDef_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_EventDef_Strategized_Proxy_Broker *the_TAO_EventDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_EventDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_EventDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl + +{ +public: + _TAO_EventDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_EventDef_ThruPOA_Proxy_Impl (void) { } + + virtual CORBA::Boolean is_a ( + CORBA_Object *_collocated_tao_target_, + const char * event_id, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual CORBA::ValueDef_ptr event ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class EventDef_tie : public EventDef +{ +public: + EventDef_tie (T &t); + // the T& ctor + EventDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + EventDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + EventDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~EventDef_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 is_a ( + const char * event_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr event ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + EventDef_tie (const EventDef_tie &); + void operator= (const EventDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class EmitsDef; +typedef EmitsDef *EmitsDef_ptr; +// Forward Classes Declaration +class _TAO_EmitsDef_ThruPOA_Proxy_Impl; +class _TAO_EmitsDef_Strategized_Proxy_Broker; + +class EmitsDef : public virtual EventDef +{ +protected: + EmitsDef (void); + +public: + EmitsDef (const EmitsDef& rhs); + virtual ~EmitsDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::EmitsDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + static void is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_event_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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. + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_EmitsDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_EmitsDef_Proxy_Broker +{ +public: + _TAO_EmitsDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_EmitsDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_EmitsDef_Proxy_Impl &select_proxy ( + ::IR::EmitsDef *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 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. + ::IR::_TAO_EmitsDef_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_EmitsDef_Strategized_Proxy_Broker *the_TAO_EmitsDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_EmitsDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_EmitsDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_IR::_TAO_EventDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_EmitsDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_EmitsDef_ThruPOA_Proxy_Impl (void) { } + + }; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class EmitsDef_tie : public EmitsDef +{ +public: + EmitsDef_tie (T &t); + // the T& ctor + EmitsDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + EmitsDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + EmitsDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~EmitsDef_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 is_a ( + const char * event_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr event ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + EmitsDef_tie (const EmitsDef_tie &); + void operator= (const EmitsDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class PublishesDef; +typedef PublishesDef *PublishesDef_ptr; +// Forward Classes Declaration +class _TAO_PublishesDef_ThruPOA_Proxy_Impl; +class _TAO_PublishesDef_Strategized_Proxy_Broker; + +class PublishesDef : public virtual EventDef +{ +protected: + PublishesDef (void); + +public: + PublishesDef (const PublishesDef& rhs); + virtual ~PublishesDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::PublishesDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + static void is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_event_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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. + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_PublishesDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_PublishesDef_Proxy_Broker +{ +public: + _TAO_PublishesDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_PublishesDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_PublishesDef_Proxy_Impl &select_proxy ( + ::IR::PublishesDef *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 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. + ::IR::_TAO_PublishesDef_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_PublishesDef_Strategized_Proxy_Broker *the_TAO_PublishesDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_PublishesDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_PublishesDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_IR::_TAO_EventDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_PublishesDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_PublishesDef_ThruPOA_Proxy_Impl (void) { } + + }; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class PublishesDef_tie : public PublishesDef +{ +public: + PublishesDef_tie (T &t); + // the T& ctor + PublishesDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + PublishesDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + PublishesDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~PublishesDef_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 is_a ( + const char * event_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr event ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + PublishesDef_tie (const PublishesDef_tie &); + void operator= (const PublishesDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class ConsumesDef; +typedef ConsumesDef *ConsumesDef_ptr; +// Forward Classes Declaration +class _TAO_ConsumesDef_ThruPOA_Proxy_Impl; +class _TAO_ConsumesDef_Strategized_Proxy_Broker; + +class ConsumesDef : public virtual EventDef +{ +protected: + ConsumesDef (void); + +public: + ConsumesDef (const ConsumesDef& rhs); + virtual ~ConsumesDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::ConsumesDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + static void is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_event_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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. + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_ConsumesDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_ConsumesDef_Proxy_Broker +{ +public: + _TAO_ConsumesDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_ConsumesDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_ConsumesDef_Proxy_Impl &select_proxy ( + ::IR::ConsumesDef *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 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. + ::IR::_TAO_ConsumesDef_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_ConsumesDef_Strategized_Proxy_Broker *the_TAO_ConsumesDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_ConsumesDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_ConsumesDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_IR::_TAO_EventDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_ConsumesDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_ConsumesDef_ThruPOA_Proxy_Impl (void) { } + + }; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class ConsumesDef_tie : public ConsumesDef +{ +public: + ConsumesDef_tie (T &t); + // the T& ctor + ConsumesDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + ConsumesDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + ConsumesDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~ConsumesDef_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 is_a ( + const char * event_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr event ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + ConsumesDef_tie (const ConsumesDef_tie &); + void operator= (const ConsumesDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class ComponentDef; +typedef ComponentDef *ComponentDef_ptr; +// Forward Classes Declaration +class _TAO_ComponentDef_ThruPOA_Proxy_Impl; +class _TAO_ComponentDef_Strategized_Proxy_Broker; + +class ComponentDef : public virtual POA_CORBA::InterfaceDef +{ +protected: + ComponentDef (void); + +public: + ComponentDef (const ComponentDef& rhs); + virtual ~ComponentDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::ComponentDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual CORBA::InterfaceDefSeq * supported_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_supported_interfaces_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void supported_interfaces ( + const CORBA::InterfaceDefSeq & supported_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _set_supported_interfaces_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::ComponentDef_ptr base_component ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_base_component_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::ProvidesDefSeq * provides_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_provides_interfaces_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::UsesDefSeq * uses_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_uses_interfaces_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::EmitsDefSeq * emits_events ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_emits_events_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::PublishesDefSeq * publishes_events ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_publishes_events_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::ConsumesDefSeq * consumes_events ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_consumes_events_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual CORBA::Boolean is_basic ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_is_basic_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::ProvidesDef_ptr create_provides ( + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_provides_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::UsesDef_ptr create_uses ( + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + CORBA::Boolean is_multiple, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_uses_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::EmitsDef_ptr create_emits ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_emits_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::PublishesDef_ptr create_publishes ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_publishes_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::ConsumesDef_ptr create_consumes ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_consumes_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_base_interfaces_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_base_interfaces_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_attribute_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_operation_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void contents_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_contents_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_module_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_constant_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_struct_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_union_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_enum_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_alias_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_value_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_value_box_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_exception_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_native_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_abstract_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_local_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_type_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_ComponentDef_supported_interfaces_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_supported_interfaces_get (const TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (CORBA::InterfaceDefSeq * result); + // update the result + CORBA::InterfaceDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_set : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_set ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *tao_impl, + const CORBA::InterfaceDefSeq & supported_interfaces, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_supported_interfaces_set (const TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_set &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_supported_interfaces_set &); + + private: + POA_IR::ComponentDef *_tao_impl; + const CORBA::InterfaceDefSeq & supported_interfaces_; + + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_base_component_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_base_component_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_base_component_get (const TAO_ServerRequestInfo_IR_ComponentDef_base_component_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_base_component_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (IR::ComponentDef_ptr result); + // update the result + IR::ComponentDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_provides_interfaces_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_provides_interfaces_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_provides_interfaces_get (const TAO_ServerRequestInfo_IR_ComponentDef_provides_interfaces_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_provides_interfaces_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (IR::ProvidesDefSeq * result); + // update the result + IR::ProvidesDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_uses_interfaces_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_uses_interfaces_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_uses_interfaces_get (const TAO_ServerRequestInfo_IR_ComponentDef_uses_interfaces_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_uses_interfaces_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (IR::UsesDefSeq * result); + // update the result + IR::UsesDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_emits_events_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_emits_events_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_emits_events_get (const TAO_ServerRequestInfo_IR_ComponentDef_emits_events_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_emits_events_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (IR::EmitsDefSeq * result); + // update the result + IR::EmitsDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_publishes_events_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_publishes_events_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_publishes_events_get (const TAO_ServerRequestInfo_IR_ComponentDef_publishes_events_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_publishes_events_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (IR::PublishesDefSeq * result); + // update the result + IR::PublishesDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_consumes_events_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_consumes_events_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_consumes_events_get (const TAO_ServerRequestInfo_IR_ComponentDef_consumes_events_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_consumes_events_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (IR::ConsumesDefSeq * result); + // update the result + IR::ConsumesDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_is_basic_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_is_basic_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_is_basic_get (const TAO_ServerRequestInfo_IR_ComponentDef_is_basic_get &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_is_basic_get &); + + private: + POA_IR::ComponentDef *_tao_impl; + void result (CORBA::Boolean result); + // update the result + CORBA::Boolean _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_create_provides : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_create_provides ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *tao_impl, + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_create_provides (const TAO_ServerRequestInfo_IR_ComponentDef_create_provides &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_create_provides &); + + private: + POA_IR::ComponentDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + CORBA::InterfaceDef_ptr interface_type_; + void result (IR::ProvidesDef_ptr result); + // update the result + IR::ProvidesDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_create_uses : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_create_uses ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *tao_impl, + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + const CORBA::Boolean & is_multiple, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_create_uses (const TAO_ServerRequestInfo_IR_ComponentDef_create_uses &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_create_uses &); + + private: + POA_IR::ComponentDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + CORBA::InterfaceDef_ptr interface_type_; + const CORBA::Boolean & is_multiple_; + void result (IR::UsesDef_ptr result); + // update the result + IR::UsesDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_create_emits : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_create_emits ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *tao_impl, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_create_emits (const TAO_ServerRequestInfo_IR_ComponentDef_create_emits &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_create_emits &); + + private: + POA_IR::ComponentDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + CORBA::ValueDef_ptr value_; + void result (IR::EmitsDef_ptr result); + // update the result + IR::EmitsDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_create_publishes : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_create_publishes ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *tao_impl, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_create_publishes (const TAO_ServerRequestInfo_IR_ComponentDef_create_publishes &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_create_publishes &); + + private: + POA_IR::ComponentDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + CORBA::ValueDef_ptr value_; + void result (IR::PublishesDef_ptr result); + // update the result + IR::PublishesDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_ComponentDef_create_consumes : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::ComponentDef; + TAO_ServerRequestInfo_IR_ComponentDef_create_consumes ( + TAO_ServerRequest &_tao_server_request, + POA_IR::ComponentDef *tao_impl, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_ComponentDef_create_consumes (const TAO_ServerRequestInfo_IR_ComponentDef_create_consumes &); + void operator= (const TAO_ServerRequestInfo_IR_ComponentDef_create_consumes &); + + private: + POA_IR::ComponentDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + CORBA::ValueDef_ptr value_; + void result (IR::ConsumesDef_ptr result); + // update the result + IR::ConsumesDef_ptr _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_ComponentDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_ComponentDef_Proxy_Broker +{ +public: + _TAO_ComponentDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_ComponentDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_ComponentDef_Proxy_Impl &select_proxy ( + ::IR::ComponentDef *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 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. + ::IR::_TAO_ComponentDef_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_ComponentDef_Strategized_Proxy_Broker *the_TAO_ComponentDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_ComponentDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_ComponentDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_InterfaceDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_ComponentDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_ComponentDef_ThruPOA_Proxy_Impl (void) { } + + virtual CORBA::InterfaceDefSeq * supported_interfaces ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual void supported_interfaces ( + CORBA_Object *_collocated_tao_target_, + const CORBA::InterfaceDefSeq & supported_interfaces, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::ComponentDef_ptr base_component ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::ProvidesDefSeq * provides_interfaces ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::UsesDefSeq * uses_interfaces ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::EmitsDefSeq * emits_events ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::PublishesDefSeq * publishes_events ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::ConsumesDefSeq * consumes_events ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual CORBA::Boolean is_basic ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::ProvidesDef_ptr create_provides ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::UsesDef_ptr create_uses ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + CORBA::Boolean is_multiple, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::EmitsDef_ptr create_emits ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::PublishesDef_ptr create_publishes ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::ConsumesDef_ptr create_consumes ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class ComponentDef_tie : public ComponentDef +{ +public: + ComponentDef_tie (T &t); + // the T& ctor + ComponentDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + ComponentDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + ComponentDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~ComponentDef_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::InterfaceDefSeq * supported_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void supported_interfaces ( + const CORBA::InterfaceDefSeq & supported_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::ComponentDef_ptr base_component ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::ProvidesDefSeq * provides_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::UsesDefSeq * uses_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::EmitsDefSeq * emits_events ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::PublishesDefSeq * publishes_events ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::ConsumesDefSeq * consumes_events ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Boolean is_basic ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::ProvidesDef_ptr create_provides ( + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::UsesDef_ptr create_uses ( + const char * id, + const char * name, + const char * version, + CORBA::InterfaceDef_ptr interface_type, + CORBA::Boolean is_multiple, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::EmitsDef_ptr create_emits ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::PublishesDef_ptr create_publishes ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::ConsumesDef_ptr create_consumes ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDefSeq * base_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void base_interfaces ( + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Boolean is_a ( + const char * interface_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDef::FullInterfaceDescription * describe_interface ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AttributeDef_ptr create_attribute ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr type, + CORBA::AttributeMode mode, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::OperationDef_ptr create_operation ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr result, + CORBA::OperationMode mode, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + const CORBA::ContextIdSeq & contexts, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained_ptr lookup ( + const char * search_name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContainedSeq * contents ( + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContainedSeq * lookup_name ( + const char * search_name, + CORBA::Long levels_to_search, + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container::DescriptionSeq * describe_contents ( + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Long max_returned_objs, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ModuleDef_ptr create_module ( + const char * id, + const char * name, + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ConstantDef_ptr create_constant ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr type, + const CORBA::Any & value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::StructDef_ptr create_struct ( + const char * id, + const char * name, + const char * version, + const CORBA::StructMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::UnionDef_ptr create_union ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr discriminator_type, + const CORBA::UnionMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::EnumDef_ptr create_enum ( + const char * id, + const char * name, + const char * version, + const CORBA::EnumMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AliasDef_ptr create_alias ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr original_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDef_ptr create_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr create_value ( + const char * id, + const char * name, + const char * version, + CORBA::Boolean is_custom, + CORBA::Boolean is_abstract, + CORBA::ValueDef_ptr base_value, + CORBA::Boolean is_truncatable, + const CORBA::ValueDefSeq & abstract_base_values, + const CORBA::InterfaceDefSeq & supported_interfaces, + const CORBA::InitializerSeq & initializers, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueBoxDef_ptr create_value_box ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr original_type_def, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ExceptionDef_ptr create_exception ( + const char * id, + const char * name, + const char * version, + const CORBA::StructMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::NativeDef_ptr create_native ( + const char * id, + const char * name, + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AbstractInterfaceDef_ptr create_abstract_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::AbstractInterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::LocalInterfaceDef_ptr create_local_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::TypeCode_ptr type ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + ComponentDef_tie (const ComponentDef_tie &); + void operator= (const ComponentDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class PrimaryKeyDef; +typedef PrimaryKeyDef *PrimaryKeyDef_ptr; +// Forward Classes Declaration +class _TAO_PrimaryKeyDef_ThruPOA_Proxy_Impl; +class _TAO_PrimaryKeyDef_Strategized_Proxy_Broker; + +class PrimaryKeyDef : public virtual POA_CORBA::Contained +{ +protected: + PrimaryKeyDef (void); + +public: + PrimaryKeyDef (const PrimaryKeyDef& rhs); + virtual ~PrimaryKeyDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::PrimaryKeyDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual CORBA::Boolean is_a ( + const char * primary_key_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void is_a_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual CORBA::ValueDef_ptr primary_key ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_primary_key_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_PrimaryKeyDef_is_a : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::PrimaryKeyDef; + TAO_ServerRequestInfo_IR_PrimaryKeyDef_is_a ( + TAO_ServerRequest &_tao_server_request, + POA_IR::PrimaryKeyDef *tao_impl, + const char * primary_key_id, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_PrimaryKeyDef_is_a (const TAO_ServerRequestInfo_IR_PrimaryKeyDef_is_a &); + void operator= (const TAO_ServerRequestInfo_IR_PrimaryKeyDef_is_a &); + + private: + POA_IR::PrimaryKeyDef *_tao_impl; + const char * primary_key_id_; + void result (CORBA::Boolean result); + // update the result + CORBA::Boolean _result; + }; + + class TAO_ServerRequestInfo_IR_PrimaryKeyDef_primary_key_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::PrimaryKeyDef; + TAO_ServerRequestInfo_IR_PrimaryKeyDef_primary_key_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::PrimaryKeyDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_PrimaryKeyDef_primary_key_get (const TAO_ServerRequestInfo_IR_PrimaryKeyDef_primary_key_get &); + void operator= (const TAO_ServerRequestInfo_IR_PrimaryKeyDef_primary_key_get &); + + private: + POA_IR::PrimaryKeyDef *_tao_impl; + void result (CORBA::ValueDef_ptr result); + // update the result + CORBA::ValueDef_ptr _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_PrimaryKeyDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_PrimaryKeyDef_Proxy_Broker +{ +public: + _TAO_PrimaryKeyDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_PrimaryKeyDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_PrimaryKeyDef_Proxy_Impl &select_proxy ( + ::IR::PrimaryKeyDef *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 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. + ::IR::_TAO_PrimaryKeyDef_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_PrimaryKeyDef_Strategized_Proxy_Broker *the_TAO_PrimaryKeyDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_PrimaryKeyDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_PrimaryKeyDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_Contained_ThruPOA_Proxy_Impl + +{ +public: + _TAO_PrimaryKeyDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_PrimaryKeyDef_ThruPOA_Proxy_Impl (void) { } + + virtual CORBA::Boolean is_a ( + CORBA_Object *_collocated_tao_target_, + const char * primary_key_id, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual CORBA::ValueDef_ptr primary_key ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class PrimaryKeyDef_tie : public PrimaryKeyDef +{ +public: + PrimaryKeyDef_tie (T &t); + // the T& ctor + PrimaryKeyDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + PrimaryKeyDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + PrimaryKeyDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~PrimaryKeyDef_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 is_a ( + const char * primary_key_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr primary_key ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + PrimaryKeyDef_tie (const PrimaryKeyDef_tie &); + void operator= (const PrimaryKeyDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class FactoryDef; +typedef FactoryDef *FactoryDef_ptr; +// Forward Classes Declaration +class _TAO_FactoryDef_ThruPOA_Proxy_Impl; +class _TAO_FactoryDef_Strategized_Proxy_Broker; + +class FactoryDef : public virtual POA_CORBA::OperationDef +{ +protected: + FactoryDef (void); + +public: + FactoryDef (const FactoryDef& rhs); + virtual ~FactoryDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::FactoryDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + static void _get_result_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_result_def_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_result_def_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_params_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_params_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_mode_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_mode_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_contexts_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_contexts_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_exceptions_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_exceptions_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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. + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_FactoryDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_FactoryDef_Proxy_Broker +{ +public: + _TAO_FactoryDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_FactoryDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_FactoryDef_Proxy_Impl &select_proxy ( + ::IR::FactoryDef *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 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. + ::IR::_TAO_FactoryDef_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_FactoryDef_Strategized_Proxy_Broker *the_TAO_FactoryDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_FactoryDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_FactoryDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_OperationDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_FactoryDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_FactoryDef_ThruPOA_Proxy_Impl (void) { } + + }; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class FactoryDef_tie : public FactoryDef +{ +public: + FactoryDef_tie (T &t); + // the T& ctor + FactoryDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + FactoryDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + FactoryDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~FactoryDef_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::TypeCode_ptr result ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::IDLType_ptr result_def ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void result_def ( + CORBA::IDLType_ptr result_def, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ParDescriptionSeq * params ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void params ( + const CORBA::ParDescriptionSeq & params, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::OperationMode mode ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void mode ( + CORBA::OperationMode mode, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContextIdSeq * contexts ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void contexts ( + const CORBA::ContextIdSeq & contexts, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ExceptionDefSeq * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void exceptions ( + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + FactoryDef_tie (const FactoryDef_tie &); + void operator= (const FactoryDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class FinderDef; +typedef FinderDef *FinderDef_ptr; +// Forward Classes Declaration +class _TAO_FinderDef_ThruPOA_Proxy_Impl; +class _TAO_FinderDef_Strategized_Proxy_Broker; + +class FinderDef : public virtual POA_CORBA::OperationDef +{ +protected: + FinderDef (void); + +public: + FinderDef (const FinderDef& rhs); + virtual ~FinderDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::FinderDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + static void _get_result_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_result_def_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_result_def_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_params_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_params_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_mode_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_mode_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_contexts_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_contexts_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_exceptions_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_exceptions_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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. + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_FinderDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_FinderDef_Proxy_Broker +{ +public: + _TAO_FinderDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_FinderDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_FinderDef_Proxy_Impl &select_proxy ( + ::IR::FinderDef *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 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. + ::IR::_TAO_FinderDef_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_FinderDef_Strategized_Proxy_Broker *the_TAO_FinderDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_FinderDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_FinderDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_OperationDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_FinderDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_FinderDef_ThruPOA_Proxy_Impl (void) { } + + }; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class FinderDef_tie : public FinderDef +{ +public: + FinderDef_tie (T &t); + // the T& ctor + FinderDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + FinderDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + FinderDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~FinderDef_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::TypeCode_ptr result ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::IDLType_ptr result_def ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void result_def ( + CORBA::IDLType_ptr result_def, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ParDescriptionSeq * params ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void params ( + const CORBA::ParDescriptionSeq & params, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::OperationMode mode ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void mode ( + CORBA::OperationMode mode, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContextIdSeq * contexts ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void contexts ( + const CORBA::ContextIdSeq & contexts, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ExceptionDefSeq * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void exceptions ( + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + FinderDef_tie (const FinderDef_tie &); + void operator= (const FinderDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +class HomeDef; +typedef HomeDef *HomeDef_ptr; +// Forward Classes Declaration +class _TAO_HomeDef_ThruPOA_Proxy_Impl; +class _TAO_HomeDef_Strategized_Proxy_Broker; + +class HomeDef : public virtual POA_CORBA::InterfaceDef +{ +protected: + HomeDef (void); + +public: + HomeDef (const HomeDef& rhs); + virtual ~HomeDef (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 () + ); + + virtual void _dispatch ( + TAO_ServerRequest &_tao_req, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + ::IR::HomeDef *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual IR::HomeDef_ptr base_home ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_base_home_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::ComponentDef_ptr managed_component ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_managed_component_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::PrimaryKeyDef_ptr primary_key ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_primary_key_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::FactoryDefSeq * factories ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_factories_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::FinderDefSeq * finders ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_finders_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual CORBA::Boolean is_basic ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void _get_is_basic_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::PrimaryKeyDef_ptr create_primary_key ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr primary_key, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_primary_key_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::FactoryDef_ptr create_factory ( + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_factory_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual IR::FinderDef_ptr create_finder ( + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )) = 0; + + static void create_finder_skel ( + TAO_ServerRequest &_tao_req, + void *_tao_obj, + void *_tao_context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_base_interfaces_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_base_interfaces_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void is_a_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_attribute_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_operation_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void contents_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void lookup_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_contents_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_module_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_constant_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_struct_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_union_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_enum_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_alias_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_value_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_value_box_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_exception_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_native_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_abstract_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void create_local_interface_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_id_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _set_version_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_defined_in_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_absolute_name_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_containing_repository_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void describe_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void move_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_type_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void _get_def_kind_skel ( + TAO_ServerRequest &req, + void *obj, + void *context, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + static void destroy_skel ( + TAO_ServerRequest &req, + void *obj, + void *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_IR_HomeDef_base_home_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_base_home_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_base_home_get (const TAO_ServerRequestInfo_IR_HomeDef_base_home_get &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_base_home_get &); + + private: + POA_IR::HomeDef *_tao_impl; + void result (IR::HomeDef_ptr result); + // update the result + IR::HomeDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_managed_component_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_managed_component_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_managed_component_get (const TAO_ServerRequestInfo_IR_HomeDef_managed_component_get &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_managed_component_get &); + + private: + POA_IR::HomeDef *_tao_impl; + void result (IR::ComponentDef_ptr result); + // update the result + IR::ComponentDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_primary_key_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_primary_key_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_primary_key_get (const TAO_ServerRequestInfo_IR_HomeDef_primary_key_get &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_primary_key_get &); + + private: + POA_IR::HomeDef *_tao_impl; + void result (IR::PrimaryKeyDef_ptr result); + // update the result + IR::PrimaryKeyDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_factories_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_factories_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_factories_get (const TAO_ServerRequestInfo_IR_HomeDef_factories_get &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_factories_get &); + + private: + POA_IR::HomeDef *_tao_impl; + void result (IR::FactoryDefSeq * result); + // update the result + IR::FactoryDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_finders_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_finders_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_finders_get (const TAO_ServerRequestInfo_IR_HomeDef_finders_get &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_finders_get &); + + private: + POA_IR::HomeDef *_tao_impl; + void result (IR::FinderDefSeq * result); + // update the result + IR::FinderDefSeq * _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_is_basic_get : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_is_basic_get ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *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)); + + virtual Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_is_basic_get (const TAO_ServerRequestInfo_IR_HomeDef_is_basic_get &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_is_basic_get &); + + private: + POA_IR::HomeDef *_tao_impl; + void result (CORBA::Boolean result); + // update the result + CORBA::Boolean _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_create_primary_key : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_create_primary_key ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *tao_impl, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr primary_key, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_create_primary_key (const TAO_ServerRequestInfo_IR_HomeDef_create_primary_key &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_create_primary_key &); + + private: + POA_IR::HomeDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + CORBA::ValueDef_ptr primary_key_; + void result (IR::PrimaryKeyDef_ptr result); + // update the result + IR::PrimaryKeyDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_create_factory : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_create_factory ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *tao_impl, + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_create_factory (const TAO_ServerRequestInfo_IR_HomeDef_create_factory &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_create_factory &); + + private: + POA_IR::HomeDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + const CORBA::ParDescriptionSeq & params_; + const CORBA::ExceptionDefSeq & exceptions_; + void result (IR::FactoryDef_ptr result); + // update the result + IR::FactoryDef_ptr _result; + }; + + class TAO_ServerRequestInfo_IR_HomeDef_create_finder : public TAO_ServerRequestInfo + { + public: + friend class POA_IR::HomeDef; + TAO_ServerRequestInfo_IR_HomeDef_create_finder ( + TAO_ServerRequest &_tao_server_request, + POA_IR::HomeDef *tao_impl, + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + 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 Dynamic::ExceptionList * exceptions ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + 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_IR_HomeDef_create_finder (const TAO_ServerRequestInfo_IR_HomeDef_create_finder &); + void operator= (const TAO_ServerRequestInfo_IR_HomeDef_create_finder &); + + private: + POA_IR::HomeDef *_tao_impl; + const char * id_; + const char * name_; + const char * version_; + const CORBA::ParDescriptionSeq & params_; + const CORBA::ExceptionDefSeq & exceptions_; + void result (IR::FinderDef_ptr result); + // update the result + IR::FinderDef_ptr _result; + }; + + #endif /* TAO_HAS_INTERCEPTORS */ + +}; + + +/////////////////////////////////////////////////////////////////////// +// Strategized Proxy Broker Declaration +// + +class _TAO_HomeDef_Strategized_Proxy_Broker : public virtual ::IR::_TAO_HomeDef_Proxy_Broker +{ +public: + _TAO_HomeDef_Strategized_Proxy_Broker (void); + + virtual ~_TAO_HomeDef_Strategized_Proxy_Broker (void); + + virtual ::IR::_TAO_HomeDef_Proxy_Impl &select_proxy ( + ::IR::HomeDef *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 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. + ::IR::_TAO_HomeDef_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_HomeDef_Strategized_Proxy_Broker *the_TAO_HomeDef_Strategized_Proxy_Broker (void); +}; + + +// +// End Strategized Proxy Broker Declaration +/////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////// +// ThruPOA Impl. Declaration +// + +class _TAO_HomeDef_ThruPOA_Proxy_Impl : + public virtual ::IR::_TAO_HomeDef_Proxy_Impl, + public virtual TAO_ThruPOA_Object_Proxy_Impl, + public virtual ::POA_CORBA::_TAO_InterfaceDef_ThruPOA_Proxy_Impl + +{ +public: + _TAO_HomeDef_ThruPOA_Proxy_Impl (void); + + virtual ~_TAO_HomeDef_ThruPOA_Proxy_Impl (void) { } + + virtual IR::HomeDef_ptr base_home ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::ComponentDef_ptr managed_component ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::PrimaryKeyDef_ptr primary_key ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::FactoryDefSeq * factories ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::FinderDefSeq * finders ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual CORBA::Boolean is_basic ( + CORBA_Object *_collocated_tao_target_, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::PrimaryKeyDef_ptr create_primary_key ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr primary_key, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::FactoryDef_ptr create_factory ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + virtual IR::FinderDef_ptr create_finder ( + CORBA_Object *_collocated_tao_target_, + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + +}; + + +// +// ThruPOA Proxy Impl. Declaration +/////////////////////////////////////////////////////////////////////// + + +#if defined (ACE_HAS_USING_KEYWORD) +// TIE class: Refer to CORBA v2.2, Section 20.34.4 +template <class T> +class HomeDef_tie : public HomeDef +{ +public: + HomeDef_tie (T &t); + // the T& ctor + HomeDef_tie (T &t, PortableServer::POA_ptr poa); + // ctor taking a POA + HomeDef_tie (T *tp, CORBA::Boolean release=1); + // ctor taking pointer and an ownership flag + HomeDef_tie (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release=1); + // ctor with T*, ownership flag and a POA + ~HomeDef_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 () + ); + IR::HomeDef_ptr base_home ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::ComponentDef_ptr managed_component ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::PrimaryKeyDef_ptr primary_key ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::FactoryDefSeq * factories ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::FinderDefSeq * finders ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Boolean is_basic ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::PrimaryKeyDef_ptr create_primary_key ( + const char * id, + const char * name, + const char * version, + CORBA::ValueDef_ptr primary_key, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::FactoryDef_ptr create_factory ( + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + IR::FinderDef_ptr create_finder ( + const char * id, + const char * name, + const char * version, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDefSeq * base_interfaces ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void base_interfaces ( + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Boolean is_a ( + const char * interface_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDef::FullInterfaceDescription * describe_interface ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AttributeDef_ptr create_attribute ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr type, + CORBA::AttributeMode mode, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::OperationDef_ptr create_operation ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr result, + CORBA::OperationMode mode, + const CORBA::ParDescriptionSeq & params, + const CORBA::ExceptionDefSeq & exceptions, + const CORBA::ContextIdSeq & contexts, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained_ptr lookup ( + const char * search_name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContainedSeq * contents ( + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ContainedSeq * lookup_name ( + const char * search_name, + CORBA::Long levels_to_search, + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container::DescriptionSeq * describe_contents ( + CORBA::DefinitionKind limit_type, + CORBA::Boolean exclude_inherited, + CORBA::Long max_returned_objs, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ModuleDef_ptr create_module ( + const char * id, + const char * name, + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ConstantDef_ptr create_constant ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr type, + const CORBA::Any & value, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::StructDef_ptr create_struct ( + const char * id, + const char * name, + const char * version, + const CORBA::StructMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::UnionDef_ptr create_union ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr discriminator_type, + const CORBA::UnionMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::EnumDef_ptr create_enum ( + const char * id, + const char * name, + const char * version, + const CORBA::EnumMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AliasDef_ptr create_alias ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr original_type, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::InterfaceDef_ptr create_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueDef_ptr create_value ( + const char * id, + const char * name, + const char * version, + CORBA::Boolean is_custom, + CORBA::Boolean is_abstract, + CORBA::ValueDef_ptr base_value, + CORBA::Boolean is_truncatable, + const CORBA::ValueDefSeq & abstract_base_values, + const CORBA::InterfaceDefSeq & supported_interfaces, + const CORBA::InitializerSeq & initializers, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ValueBoxDef_ptr create_value_box ( + const char * id, + const char * name, + const char * version, + CORBA::IDLType_ptr original_type_def, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::ExceptionDef_ptr create_exception ( + const char * id, + const char * name, + const char * version, + const CORBA::StructMemberSeq & members, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::NativeDef_ptr create_native ( + const char * id, + const char * name, + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::AbstractInterfaceDef_ptr create_abstract_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::AbstractInterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::LocalInterfaceDef_ptr create_local_interface ( + const char * id, + const char * name, + const char * version, + const CORBA::InterfaceDefSeq & base_interfaces, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * id ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void id ( + const char * id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void name ( + const char * name, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * version ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void version ( + const char * version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Container_ptr defined_in ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + char * absolute_name ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Repository_ptr containing_repository ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::Contained::Description * describe ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + void move ( + CORBA::Container_ptr new_container, + const char * new_name, + const char * new_version, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::TypeCode_ptr type ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) + ACE_THROW_SPEC (( + CORBA::SystemException + )); + + CORBA::DefinitionKind def_kind ( + 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_; + + // copy and assignment are not allowed + HomeDef_tie (const HomeDef_tie &); + void operator= (const HomeDef_tie &); +}; + +#endif /* ACE_HAS_USING_KEYWORD */ + +} +TAO_NAMESPACE_CLOSE + +#include "IFR_ComponentsS_T.h" + +#if defined (__ACE_INLINE__) +#include "IFR_ComponentsS.i" +#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 */ |