// -*- C++ -*-
/**
 * Code generated by the The ACE ORB (TAO) IDL Compiler v2.4.0
 * 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
 * and
 *       Institute for Software Integrated Systems
 *       Vanderbilt University
 *       Nashville, TN
 *       USA
 *       http://www.isis.vanderbilt.edu/
 *
 * Information about TAO is available at:
 *     http://www.dre.vanderbilt.edu/~schmidt/TAO.html
 **/

// TAO_IDL - Generated from
// be/be_codegen.cpp:458

#ifndef _TAO_IDL_IFR_COMPONENTSS_DZXIRH_H_
#define _TAO_IDL_IFR_COMPONENTSS_DZXIRH_H_

#include /**/ "ace/pre.h"

#include "IFR_ComponentsC.h"
#include "tao/IFR_Client/IFR_ExtendedS.h"
#include "tao/PortableServer/Basic_SArguments.h"
#include "tao/PortableServer/Special_Basic_SArguments.h"
#include "tao/PortableServer/Fixed_Size_SArgument_T.h"
#include "tao/PortableServer/Var_Size_SArgument_T.h"
#include "tao/PortableServer/Object_SArg_Traits.h"
#include "tao/PortableServer/Special_Basic_SArguments.h"
#include "tao/PortableServer/UB_String_SArguments.h"
#include "tao/PortableServer/Object_SArg_Traits.h"
#include "tao/PortableServer/TypeCode_SArg_Traits.h"
#include "tao/PortableServer/get_arg.h"
#include "tao/Special_Basic_Arguments.h"
#include "tao/UB_String_Arguments.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "tao/PortableServer/PortableServer.h"
#include "tao/PortableServer/Servant_Base.h"

#include /**/ "tao/IFR_Client/ifr_client_skel_export.h"

#if defined (TAO_EXPORT_MACRO)
#undef TAO_EXPORT_MACRO
#endif
#define TAO_EXPORT_MACRO TAO_IFR_CLIENT_SKEL_Export

TAO_BEGIN_VERSIONED_NAMESPACE_DECL



// TAO_IDL - Generated from
// be/be_visitor_arg_traits.cpp:66


TAO_END_VERSIONED_NAMESPACE_DECL


TAO_BEGIN_VERSIONED_NAMESPACE_DECL


// Arg traits specializations.
namespace TAO
{

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_COMPONENTDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_COMPONENTDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::ComponentDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::ComponentDef_ptr,
            ::CORBA::ComponentIR::ComponentDef_var,
            ::CORBA::ComponentIR::ComponentDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_HOMEDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_HOMEDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::HomeDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::HomeDef_ptr,
            ::CORBA::ComponentIR::HomeDef_var,
            ::CORBA::ComponentIR::HomeDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_EVENTDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_EVENTDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::EventDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::EventDef_ptr,
            ::CORBA::ComponentIR::EventDef_var,
            ::CORBA::ComponentIR::EventDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_CONTAINER__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_CONTAINER__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::Container>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::Container_ptr,
            ::CORBA::ComponentIR::Container_var,
            ::CORBA::ComponentIR::Container_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_MODULEDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_MODULEDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::ModuleDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::ModuleDef_ptr,
            ::CORBA::ComponentIR::ModuleDef_var,
            ::CORBA::ComponentIR::ModuleDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_REPOSITORY__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_REPOSITORY__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::Repository>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::Repository_ptr,
            ::CORBA::ComponentIR::Repository_var,
            ::CORBA::ComponentIR::Repository_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_PROVIDESDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_PROVIDESDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::ProvidesDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::ProvidesDef_ptr,
            ::CORBA::ComponentIR::ProvidesDef_var,
            ::CORBA::ComponentIR::ProvidesDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:945

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::ProvidesDescription>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::ProvidesDescription,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_USESDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_USESDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::UsesDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::UsesDef_ptr,
            ::CORBA::ComponentIR::UsesDef_var,
            ::CORBA::ComponentIR::UsesDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:945

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::UsesDescription>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::UsesDescription,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_EVENTPORTDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_EVENTPORTDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::EventPortDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::EventPortDef_ptr,
            ::CORBA::ComponentIR::EventPortDef_var,
            ::CORBA::ComponentIR::EventPortDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:945

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::EventPortDescription>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::EventPortDescription,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_EMITSDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_EMITSDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::EmitsDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::EmitsDef_ptr,
            ::CORBA::ComponentIR::EmitsDef_var,
            ::CORBA::ComponentIR::EmitsDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_PUBLISHESDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_PUBLISHESDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::PublishesDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::PublishesDef_ptr,
            ::CORBA::ComponentIR::PublishesDef_var,
            ::CORBA::ComponentIR::PublishesDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_CONSUMESDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_CONSUMESDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::ConsumesDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::ConsumesDef_ptr,
            ::CORBA::ComponentIR::ConsumesDef_var,
            ::CORBA::ComponentIR::ConsumesDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:683

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::ProvidesDescriptionSeq>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::ProvidesDescriptionSeq,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:683

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::UsesDescriptionSeq>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::UsesDescriptionSeq,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:683

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::EventPortDescriptionSeq>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::EventPortDescriptionSeq,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:945

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::ComponentDescription>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::ComponentDescription,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_FACTORYDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_FACTORYDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::FactoryDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::FactoryDef_ptr,
            ::CORBA::ComponentIR::FactoryDef_var,
            ::CORBA::ComponentIR::FactoryDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:145

#if !defined (_CORBA_COMPONENTIR_FINDERDEF__SARG_TRAITS_)
#define _CORBA_COMPONENTIR_FINDERDEF__SARG_TRAITS_

  template<>
  class  SArg_Traits< ::CORBA::ComponentIR::FinderDef>
    : public
        Object_SArg_Traits_T<
            ::CORBA::ComponentIR::FinderDef_ptr,
            ::CORBA::ComponentIR::FinderDef_var,
            ::CORBA::ComponentIR::FinderDef_out,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };

#endif /* end #if !defined */

  // TAO_IDL - Generated from
  // be/be_visitor_arg_traits.cpp:945

  template<>
  class SArg_Traits< ::CORBA::ComponentIR::HomeDescription>
    : public
        Var_Size_SArg_Traits_T<
            ::CORBA::ComponentIR::HomeDescription,
            TAO::Any_Insert_Policy_Stream
          >
  {
  };
}

TAO_END_VERSIONED_NAMESPACE_DECL


TAO_BEGIN_VERSIONED_NAMESPACE_DECL




// TAO_IDL - Generated from
// be/be_visitor_module/module_sh.cpp:35

namespace POA_CORBA
{
  

  // TAO_IDL - Generated from
  // be/be_visitor_module/module_sh.cpp:35

  namespace ComponentIR
  {
    

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class EventDef;
    typedef EventDef *EventDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export EventDef
      : public virtual POA_CORBA::ExtValueDef
    {
    protected:
      EventDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::EventDef _stub_type;
      typedef ::CORBA::ComponentIR::EventDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::EventDef_var _stub_var_type;

      EventDef (const EventDef& rhs);
      virtual ~EventDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::EventDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class Container;
    typedef Container *Container_ptr;

    class TAO_IFR_CLIENT_SKEL_Export Container
      : public virtual POA_CORBA::Container
    {
    protected:
      Container (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::Container _stub_type;
      typedef ::CORBA::ComponentIR::Container_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::Container_var _stub_var_type;

      Container (const Container& rhs);
      virtual ~Container (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::Container *_this (void);
      
      virtual const char* _interface_repository_id (void) const;

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::ComponentDef_ptr create_component (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::ComponentIR::ComponentDef_ptr base_component,
        const ::CORBA::InterfaceDefSeq & supports_interfaces) = 0;

      static void create_component_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::HomeDef_ptr create_home (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::ComponentIR::HomeDef_ptr base_home,
        ::CORBA::ComponentIR::ComponentDef_ptr managed_component,
        const ::CORBA::InterfaceDefSeq & supports_interfaces,
        ::CORBA::ValueDef_ptr primary_key) = 0;

      static void create_home_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::EventDef_ptr create_event (
        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::ExtInitializerSeq & initializers) = 0;

      static void create_event_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class ModuleDef;
    typedef ModuleDef *ModuleDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export ModuleDef
      : public virtual POA_CORBA::ModuleDef,
        public virtual POA_CORBA::ComponentIR::Container
    {
    protected:
      ModuleDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::ModuleDef _stub_type;
      typedef ::CORBA::ComponentIR::ModuleDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::ModuleDef_var _stub_var_type;

      ModuleDef (const ModuleDef& rhs);
      virtual ~ModuleDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::ModuleDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class Repository;
    typedef Repository *Repository_ptr;

    class TAO_IFR_CLIENT_SKEL_Export Repository
      : public virtual POA_CORBA::Repository,
        public virtual POA_CORBA::ComponentIR::Container
    {
    protected:
      Repository (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::Repository _stub_type;
      typedef ::CORBA::ComponentIR::Repository_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::Repository_var _stub_var_type;

      Repository (const Repository& rhs);
      virtual ~Repository (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::Repository *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class ProvidesDef;
    typedef ProvidesDef *ProvidesDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export ProvidesDef
      : public virtual POA_CORBA::Contained
    {
    protected:
      ProvidesDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::ProvidesDef _stub_type;
      typedef ::CORBA::ComponentIR::ProvidesDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::ProvidesDef_var _stub_var_type;

      ProvidesDef (const ProvidesDef& rhs);
      virtual ~ProvidesDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::ProvidesDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::InterfaceDef_ptr interface_type (
        void) = 0;

      static void _get_interface_type_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void interface_type (
        ::CORBA::InterfaceDef_ptr interface_type) = 0;

      static void _set_interface_type_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class UsesDef;
    typedef UsesDef *UsesDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export UsesDef
      : public virtual POA_CORBA::Contained
    {
    protected:
      UsesDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::UsesDef _stub_type;
      typedef ::CORBA::ComponentIR::UsesDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::UsesDef_var _stub_var_type;

      UsesDef (const UsesDef& rhs);
      virtual ~UsesDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::UsesDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::InterfaceDef_ptr interface_type (
        void) = 0;

      static void _get_interface_type_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void interface_type (
        ::CORBA::InterfaceDef_ptr interface_type) = 0;

      static void _set_interface_type_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::Boolean is_multiple (
        void) = 0;

      static void _get_is_multiple_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void is_multiple (
        ::CORBA::Boolean is_multiple) = 0;

      static void _set_is_multiple_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class EventPortDef;
    typedef EventPortDef *EventPortDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export EventPortDef
      : public virtual POA_CORBA::Contained
    {
    protected:
      EventPortDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::EventPortDef _stub_type;
      typedef ::CORBA::ComponentIR::EventPortDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::EventPortDef_var _stub_var_type;

      EventPortDef (const EventPortDef& rhs);
      virtual ~EventPortDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::EventPortDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::EventDef_ptr event (
        void) = 0;

      static void _get_event_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void event (
        ::CORBA::ComponentIR::EventDef_ptr event) = 0;

      static void _set_event_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::Boolean is_a (
        const char * event_id) = 0;

      static void is_a_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class EmitsDef;
    typedef EmitsDef *EmitsDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export EmitsDef
      : public virtual POA_CORBA::ComponentIR::EventPortDef
    {
    protected:
      EmitsDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::EmitsDef _stub_type;
      typedef ::CORBA::ComponentIR::EmitsDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::EmitsDef_var _stub_var_type;

      EmitsDef (const EmitsDef& rhs);
      virtual ~EmitsDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::EmitsDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class PublishesDef;
    typedef PublishesDef *PublishesDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export PublishesDef
      : public virtual POA_CORBA::ComponentIR::EventPortDef
    {
    protected:
      PublishesDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::PublishesDef _stub_type;
      typedef ::CORBA::ComponentIR::PublishesDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::PublishesDef_var _stub_var_type;

      PublishesDef (const PublishesDef& rhs);
      virtual ~PublishesDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::PublishesDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class ConsumesDef;
    typedef ConsumesDef *ConsumesDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export ConsumesDef
      : public virtual POA_CORBA::ComponentIR::EventPortDef
    {
    protected:
      ConsumesDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::ConsumesDef _stub_type;
      typedef ::CORBA::ComponentIR::ConsumesDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::ConsumesDef_var _stub_var_type;

      ConsumesDef (const ConsumesDef& rhs);
      virtual ~ConsumesDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::ConsumesDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class ComponentDef;
    typedef ComponentDef *ComponentDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export ComponentDef
      : public virtual POA_CORBA::ExtInterfaceDef
    {
    protected:
      ComponentDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::ComponentDef _stub_type;
      typedef ::CORBA::ComponentIR::ComponentDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::ComponentDef_var _stub_var_type;

      ComponentDef (const ComponentDef& rhs);
      virtual ~ComponentDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::ComponentDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::ComponentDef_ptr base_component (
        void) = 0;

      static void _get_base_component_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void base_component (
        ::CORBA::ComponentIR::ComponentDef_ptr base_component) = 0;

      static void _set_base_component_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::InterfaceDefSeq * supported_interfaces (
        void) = 0;

      static void _get_supported_interfaces_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void supported_interfaces (
        const ::CORBA::InterfaceDefSeq & supported_interfaces) = 0;

      static void _set_supported_interfaces_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::ProvidesDef_ptr create_provides (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::InterfaceDef_ptr interface_type) = 0;

      static void create_provides_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::UsesDef_ptr create_uses (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::InterfaceDef_ptr interface_type,
        ::CORBA::Boolean is_multiple) = 0;

      static void create_uses_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::EmitsDef_ptr create_emits (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::ComponentIR::EventDef_ptr event) = 0;

      static void create_emits_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::PublishesDef_ptr create_publishes (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::ComponentIR::EventDef_ptr event) = 0;

      static void create_publishes_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::ConsumesDef_ptr create_consumes (
        const char * id,
        const char * name,
        const char * version,
        ::CORBA::ComponentIR::EventDef_ptr event) = 0;

      static void create_consumes_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class FactoryDef;
    typedef FactoryDef *FactoryDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export FactoryDef
      : public virtual POA_CORBA::OperationDef
    {
    protected:
      FactoryDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::FactoryDef _stub_type;
      typedef ::CORBA::ComponentIR::FactoryDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::FactoryDef_var _stub_var_type;

      FactoryDef (const FactoryDef& rhs);
      virtual ~FactoryDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::FactoryDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class FinderDef;
    typedef FinderDef *FinderDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export FinderDef
      : public virtual POA_CORBA::OperationDef
    {
    protected:
      FinderDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::FinderDef _stub_type;
      typedef ::CORBA::ComponentIR::FinderDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::FinderDef_var _stub_var_type;

      FinderDef (const FinderDef& rhs);
      virtual ~FinderDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::FinderDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;
    };

    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_sh.cpp:73

    class HomeDef;
    typedef HomeDef *HomeDef_ptr;

    class TAO_IFR_CLIENT_SKEL_Export HomeDef
      : public virtual POA_CORBA::ExtInterfaceDef
    {
    protected:
      HomeDef (void);
    
    public:
      /// Useful for template programming.
      typedef ::CORBA::ComponentIR::HomeDef _stub_type;
      typedef ::CORBA::ComponentIR::HomeDef_ptr _stub_ptr_type;
      typedef ::CORBA::ComponentIR::HomeDef_var _stub_var_type;

      HomeDef (const HomeDef& rhs);
      virtual ~HomeDef (void);

      virtual ::CORBA::Boolean _is_a (const char* logical_type_id);

      virtual void _dispatch (
          TAO_ServerRequest & req,
          TAO::Portable_Server::Servant_Upcall *servant_upcall);
      
      ::CORBA::ComponentIR::HomeDef *_this (void);
      
      virtual const char* _interface_repository_id (void) const;

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::HomeDef_ptr base_home (
        void) = 0;

      static void _get_base_home_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void base_home (
        ::CORBA::ComponentIR::HomeDef_ptr base_home) = 0;

      static void _set_base_home_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::InterfaceDefSeq * supported_interfaces (
        void) = 0;

      static void _get_supported_interfaces_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void supported_interfaces (
        const ::CORBA::InterfaceDefSeq & supported_interfaces) = 0;

      static void _set_supported_interfaces_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::ComponentDef_ptr managed_component (
        void) = 0;

      static void _get_managed_component_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void managed_component (
        ::CORBA::ComponentIR::ComponentDef_ptr managed_component) = 0;

      static void _set_managed_component_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ValueDef_ptr primary_key (
        void) = 0;

      static void _get_primary_key_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual void primary_key (
        ::CORBA::ValueDef_ptr primary_key) = 0;

      static void _set_primary_key_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::FactoryDef_ptr create_factory (
        const char * id,
        const char * name,
        const char * version,
        const ::CORBA::ParDescriptionSeq & params,
        const ::CORBA::ExceptionDefSeq & exceptions) = 0;

      static void create_factory_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);

      // TAO_IDL - Generated from
      // be/be_visitor_operation/operation_sh.cpp:36

      virtual ::CORBA::ComponentIR::FinderDef_ptr create_finder (
        const char * id,
        const char * name,
        const char * version,
        const ::CORBA::ParDescriptionSeq & params,
        const ::CORBA::ExceptionDefSeq & exceptions) = 0;

      static void create_finder_skel (
          TAO_ServerRequest &server_request,
          TAO::Portable_Server::Servant_Upcall *servant_upcall,
          TAO_ServantBase *servant);
    };
  
  // TAO_IDL - Generated from
  // be/be_visitor_module/module_sh.cpp:66

  } // module CORBA::ComponentIR

// TAO_IDL - Generated from
// be/be_visitor_module/module_sh.cpp:66

} // module CORBA

TAO_END_VERSIONED_NAMESPACE_DECL



#include "IFR_ComponentsS_T.h"


#include /**/ "ace/post.h"

#endif /* ifndef */

