/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // TAO/orbsvcs/IFR_Service // // = FILENAME // Container_i.h // // = DESCRIPTION // Container servant class. // // = AUTHOR // Jeff Parsons // // ============================================================================ #ifndef TAO_CONTAINER_I_H #define TAO_CONTAINER_I_H #include "IRObject_i.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #if defined(_MSC_VER) #if (_MSC_VER >= 1200) #pragma warning(push) #endif /* _MSC_VER >= 1200 */ #pragma warning(disable:4250) #endif /* _MSC_VER */ class TAO_Repository_i; class TAO_Container_i : public virtual TAO_IRObject_i { // = TITLE // TAO_Container_i // // = DESCRIPTION // Abstract base class used to form a containment hierarchy // in the Interface Repository, by containing objects // derived from the Contained interface. // public: TAO_Container_i (TAO_Repository_i *repo, ACE_Configuration_Section_Key section_key); // Constructor. virtual ~TAO_Container_i (void); // Destructor. virtual void destroy ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Remove our contents. virtual void destroy_i ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_Contained_ptr lookup ( const char *search_name ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_Contained_ptr lookup_i ( const char *search_name ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_ContainedSeq *contents ( CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ContainedSeq *contents_i ( CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_ContainedSeq *lookup_name ( const char *search_name, CORBA::Long levels_to_search, CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ContainedSeq *lookup_name_i ( const char *search_name, CORBA::Long levels_to_search, CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_Container::DescriptionSeq *describe_contents ( CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited, CORBA::Long max_returned_objs ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_Container::DescriptionSeq *describe_contents_i ( CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited, CORBA::Long max_returned_objs ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_ModuleDef_ptr create_module ( const char *id, const char *name, const char *version ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ModuleDef_ptr create_module_i ( const char *id, const char *name, const char *version ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_ConstantDef_ptr create_constant ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr type, const CORBA::Any & value ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ConstantDef_ptr create_constant_i ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr type, const CORBA::Any & value ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_StructDef_ptr create_struct ( const char *id, const char *name, const char *version, const CORBA_StructMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_StructDef_ptr create_struct_i ( const char *id, const char *name, const char *version, const CORBA_StructMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_UnionDef_ptr create_union ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr discriminator_type, const CORBA_UnionMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_UnionDef_ptr create_union_i ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr discriminator_type, const CORBA_UnionMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_EnumDef_ptr create_enum ( const char *id, const char *name, const char *version, const CORBA_EnumMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_EnumDef_ptr create_enum_i ( const char *id, const char *name, const char *version, const CORBA_EnumMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_AliasDef_ptr create_alias ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr original_type ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_AliasDef_ptr create_alias_i ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr original_type ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_InterfaceDef_ptr create_interface ( const char *id, const char *name, const char *version, const CORBA_InterfaceDefSeq &base_interfaces ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_InterfaceDef_ptr create_interface_i ( const char *id, const char *name, const char *version, const CORBA_InterfaceDefSeq &base_interfaces ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual 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 ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ValueDef_ptr create_value_i ( 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 ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_ValueBoxDef_ptr create_value_box ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr original_type_def ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ValueBoxDef_ptr create_value_box_i ( const char *id, const char *name, const char *version, CORBA_IDLType_ptr original_type_def ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_ExceptionDef_ptr create_exception ( const char *id, const char *name, const char *version, const CORBA_StructMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_ExceptionDef_ptr create_exception_i ( const char *id, const char *name, const char *version, const CORBA_StructMemberSeq &members ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_NativeDef_ptr create_native ( const char *id, const char *name, const char *version ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_NativeDef_ptr create_native_i ( const char *id, const char *name, const char *version ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_AbstractInterfaceDef_ptr create_abstract_interface ( const char *id, const char *name, const char *version, const CORBA_AbstractInterfaceDefSeq &base_interfaces ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_AbstractInterfaceDef_ptr create_abstract_interface_i ( const char *id, const char *name, const char *version, const CORBA_AbstractInterfaceDefSeq &base_interfaces ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); virtual CORBA_LocalInterfaceDef_ptr create_local_interface ( const char *id, const char *name, const char *version, const CORBA_InterfaceDefSeq &base_interfaces ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA_LocalInterfaceDef_ptr create_local_interface_i ( const char *id, const char *name, const char *version, const CORBA_InterfaceDefSeq &base_interfaces ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); CORBA::Boolean name_exists ( const char *name ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Checks for local existence of . protected: void store_label ( ACE_Configuration_Section_Key key, const CORBA::Any &value ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Store a union member's label value. CORBA::Boolean pre_exist ( const char *id, const char *name ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Bundles id_exists and name_exists together. ACE_TString create_common ( ACE_Configuration_Section_Key sub_key, ACE_Configuration_Section_Key &new_key, const char *id, const char *name, const char *version, const char *sub_section, CORBA::DefinitionKind def_kind ); // Code common to all the create_* methods. void lookup_attr ( ACE_Unbounded_Queue &kind_queue, ACE_Unbounded_Queue &path_queue, const char *search_name, CORBA::Boolean exclude_inherited ); void lookup_op ( ACE_Unbounded_Queue &kind_queue, ACE_Unbounded_Queue &path_queue, const char *search_name, CORBA::Boolean exclude_inherited ); private: void lookup_name_recursive ( ACE_Unbounded_Queue &kind_queue, ACE_Unbounded_Queue &path_queue, const char *search_name, CORBA::Long levels_to_search, CORBA::DefinitionKind limit_type, CORBA::Boolean exclude_inherited ACE_ENV_ARG_DECL_WITH_DEFAULTS); CORBA::Boolean id_exists ( const char *id ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Checks for global existence of the repo id. CORBA::Boolean valid_container ( const CORBA::DefinitionKind op_kind ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Is this operation valid for this container type? void update_refs ( const char *path, const char *name ); // Used with structs, unions and exceptions. }; #if defined(_MSC_VER) && (_MSC_VER >= 1200) #pragma warning(pop) #endif /* _MSC_VER */ #endif /* TAO_CONTAINER_I_H */