diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/IFRService/Contained_i.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/Contained_i.h | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/Contained_i.h b/TAO/orbsvcs/orbsvcs/IFRService/Contained_i.h new file mode 100644 index 00000000000..5729837ce3b --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/IFRService/Contained_i.h @@ -0,0 +1,236 @@ +// -*- C++ -*- + +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/orbsvcs/orbsvcs/IFRService +// +// = FILENAME +// Contained_i.h +// +// = DESCRIPTION +// Contained servant class. +// +// = AUTHOR +// Jeff Parsons <parsons@cs.wustl.edu> +// +// ============================================================================ + +#ifndef TAO_CONTAINED_I_H +#define TAO_CONTAINED_I_H + +#include "orbsvcs/IFRService/IRObject_i.h" +#include "orbsvcs/IFRService/ifr_service_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_IFRService_Export TAO_Contained_i : public virtual TAO_IRObject_i +{ + // = TITLE + // TAO_Contained_i + // + // = DESCRIPTION + // Abstract base class for all IR objects that are contained + // by other IR objects. + // +public: + TAO_Contained_i (TAO_Repository_i *repo); + // Constructor. + + virtual ~TAO_Contained_i (void); + // Destructor. + + virtual void destroy ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Remove the repository entry. + + virtual void destroy_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char *id ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + char *id_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void id ( + const char *id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void id_i ( + const char *id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char *name ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + char *name_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void name ( + const char *name + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void name_i ( + const char *name + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char *version ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + char *version_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void version ( + const char *version + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + void version_i ( + const char *version + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Container_ptr defined_in ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + CORBA::Container_ptr defined_in_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual char *absolute_name ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + char *absolute_name_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Repository_ptr containing_repository ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Contained::Description *describe ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual CORBA::Contained::Description *describe_i ( + ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void move ( + CORBA::Container_ptr new_container, + const char *new_name, + const char *new_version + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + + static int same_as_tmp_name (const char *name); + // Called from TAO_IFR_Service_Utils::name_exists. + +protected: + void move_i ( + CORBA::Container_ptr new_container, + const char *new_name, + const char *new_version, + CORBA::Boolean cleanup + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Engine for move() with an extra 'cleanup' + // parameter. Since a section removal can be + // recursive, this need be done only at the top + // level. + +private: + CORBA::Boolean name_exists ( + const char *name + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Check if <name> already exists in our container + + void contents_name_update ( + ACE_TString stem, + ACE_Configuration_Section_Key key + ); + // Recursively update the scoped name of our contents. + + void move_pre_process ( + CORBA::Container_ptr container, + const char *contained_path, + const char *name + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Mangle the names of references that are also + // defined in the scope, so a name clash will + // not occur when create_* is called. Create_* + // unmangles the names. + + void move_contents ( + CORBA::Container_ptr new_container + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC ((CORBA::SystemException)); + // Recursively calls move_i for definitions, + // as well as operations and attributes if + // applicable. + +private: + static const char *tmp_name_holder_; +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#endif /* TAO_CONTAINED_I_H */ |