// This file is generated by omniidl (C++ backend)- omniORB_4_1. Do not edit.
#ifndef __ir_poa_hh__
#define __ir_poa_hh__

class IRObject :
  public virtual CORBA::_impl_IRObject,
  public virtual ::PortableServer::ServantBase
{
public:
  virtual ~IRObject();

  inline ::CORBA::IRObject_ptr _this() {
    return (::CORBA::IRObject_ptr) _do_this(::CORBA::IRObject::_PD_repoId);
  }
};

class Contained :
  public virtual CORBA::_impl_Contained,
  public virtual IRObject
{
public:
  virtual ~Contained();

  inline ::CORBA::Contained_ptr _this() {
    return (::CORBA::Contained_ptr) _do_this(::CORBA::Contained::_PD_repoId);
  }
};

class Container :
  public virtual CORBA::_impl_Container,
  public virtual IRObject
{
public:
  virtual ~Container();

  inline ::CORBA::Container_ptr _this() {
    return (::CORBA::Container_ptr) _do_this(::CORBA::Container::_PD_repoId);
  }
};

class IDLType :
  public virtual CORBA::_impl_IDLType,
  public virtual IRObject
{
public:
  virtual ~IDLType();

  inline ::CORBA::IDLType_ptr _this() {
    return (::CORBA::IDLType_ptr) _do_this(::CORBA::IDLType::_PD_repoId);
  }
};

class Repository :
  public virtual CORBA::_impl_Repository,
  public virtual Container
{
public:
  virtual ~Repository();

  inline ::CORBA::Repository_ptr _this() {
    return (::CORBA::Repository_ptr) _do_this(::CORBA::Repository::_PD_repoId);
  }
};

class ModuleDef :
  public virtual CORBA::_impl_ModuleDef,
  public virtual Container,
    public virtual Contained
{
public:
  virtual ~ModuleDef();

  inline ::CORBA::ModuleDef_ptr _this() {
    return (::CORBA::ModuleDef_ptr) _do_this(::CORBA::ModuleDef::_PD_repoId);
  }
};

class ConstantDef :
  public virtual CORBA::_impl_ConstantDef,
  public virtual Contained
{
public:
  virtual ~ConstantDef();

  inline ::CORBA::ConstantDef_ptr _this() {
    return (::CORBA::ConstantDef_ptr) _do_this(::CORBA::ConstantDef::_PD_repoId);
  }
};

class TypedefDef :
  public virtual CORBA::_impl_TypedefDef,
  public virtual Contained,
    public virtual IDLType
{
public:
  virtual ~TypedefDef();

  inline ::CORBA::TypedefDef_ptr _this() {
    return (::CORBA::TypedefDef_ptr) _do_this(::CORBA::TypedefDef::_PD_repoId);
  }
};

class StructDef :
  public virtual CORBA::_impl_StructDef,
  public virtual TypedefDef,
    public virtual Container
{
public:
  virtual ~StructDef();

  inline ::CORBA::StructDef_ptr _this() {
    return (::CORBA::StructDef_ptr) _do_this(::CORBA::StructDef::_PD_repoId);
  }
};

class UnionDef :
  public virtual CORBA::_impl_UnionDef,
  public virtual TypedefDef,
    public virtual Container
{
public:
  virtual ~UnionDef();

  inline ::CORBA::UnionDef_ptr _this() {
    return (::CORBA::UnionDef_ptr) _do_this(::CORBA::UnionDef::_PD_repoId);
  }
};

class EnumDef :
  public virtual CORBA::_impl_EnumDef,
  public virtual TypedefDef
{
public:
  virtual ~EnumDef();

  inline ::CORBA::EnumDef_ptr _this() {
    return (::CORBA::EnumDef_ptr) _do_this(::CORBA::EnumDef::_PD_repoId);
  }
};

class AliasDef :
  public virtual CORBA::_impl_AliasDef,
  public virtual TypedefDef
{
public:
  virtual ~AliasDef();

  inline ::CORBA::AliasDef_ptr _this() {
    return (::CORBA::AliasDef_ptr) _do_this(::CORBA::AliasDef::_PD_repoId);
  }
};

class NativeDef :
  public virtual CORBA::_impl_NativeDef,
  public virtual TypedefDef
{
public:
  virtual ~NativeDef();

  inline ::CORBA::NativeDef_ptr _this() {
    return (::CORBA::NativeDef_ptr) _do_this(::CORBA::NativeDef::_PD_repoId);
  }
};

class PrimitiveDef :
  public virtual CORBA::_impl_PrimitiveDef,
  public virtual IDLType
{
public:
  virtual ~PrimitiveDef();

  inline ::CORBA::PrimitiveDef_ptr _this() {
    return (::CORBA::PrimitiveDef_ptr) _do_this(::CORBA::PrimitiveDef::_PD_repoId);
  }
};

class StringDef :
  public virtual CORBA::_impl_StringDef,
  public virtual IDLType
{
public:
  virtual ~StringDef();

  inline ::CORBA::StringDef_ptr _this() {
    return (::CORBA::StringDef_ptr) _do_this(::CORBA::StringDef::_PD_repoId);
  }
};

class WstringDef :
  public virtual CORBA::_impl_WstringDef,
  public virtual IDLType
{
public:
  virtual ~WstringDef();

  inline ::CORBA::WstringDef_ptr _this() {
    return (::CORBA::WstringDef_ptr) _do_this(::CORBA::WstringDef::_PD_repoId);
  }
};

class FixedDef :
  public virtual CORBA::_impl_FixedDef,
  public virtual IDLType
{
public:
  virtual ~FixedDef();

  inline ::CORBA::FixedDef_ptr _this() {
    return (::CORBA::FixedDef_ptr) _do_this(::CORBA::FixedDef::_PD_repoId);
  }
};

class SequenceDef :
  public virtual CORBA::_impl_SequenceDef,
  public virtual IDLType
{
public:
  virtual ~SequenceDef();

  inline ::CORBA::SequenceDef_ptr _this() {
    return (::CORBA::SequenceDef_ptr) _do_this(::CORBA::SequenceDef::_PD_repoId);
  }
};

class ArrayDef :
  public virtual CORBA::_impl_ArrayDef,
  public virtual IDLType
{
public:
  virtual ~ArrayDef();

  inline ::CORBA::ArrayDef_ptr _this() {
    return (::CORBA::ArrayDef_ptr) _do_this(::CORBA::ArrayDef::_PD_repoId);
  }
};

class ExceptionDef :
  public virtual CORBA::_impl_ExceptionDef,
  public virtual Contained,
    public virtual Container
{
public:
  virtual ~ExceptionDef();

  inline ::CORBA::ExceptionDef_ptr _this() {
    return (::CORBA::ExceptionDef_ptr) _do_this(::CORBA::ExceptionDef::_PD_repoId);
  }
};

class AttributeDef :
  public virtual CORBA::_impl_AttributeDef,
  public virtual Contained
{
public:
  virtual ~AttributeDef();

  inline ::CORBA::AttributeDef_ptr _this() {
    return (::CORBA::AttributeDef_ptr) _do_this(::CORBA::AttributeDef::_PD_repoId);
  }
};

class OperationDef :
  public virtual CORBA::_impl_OperationDef,
  public virtual Contained
{
public:
  virtual ~OperationDef();

  inline ::CORBA::OperationDef_ptr _this() {
    return (::CORBA::OperationDef_ptr) _do_this(::CORBA::OperationDef::_PD_repoId);
  }
};

class InterfaceDef :
  public virtual CORBA::_impl_InterfaceDef,
  public virtual Container,
    public virtual Contained,
    public virtual IDLType
{
public:
  virtual ~InterfaceDef();

  inline ::CORBA::InterfaceDef_ptr _this() {
    return (::CORBA::InterfaceDef_ptr) _do_this(::CORBA::InterfaceDef::_PD_repoId);
  }
};

class ValueMemberDef :
  public virtual CORBA::_impl_ValueMemberDef,
  public virtual Contained
{
public:
  virtual ~ValueMemberDef();

  inline ::CORBA::ValueMemberDef_ptr _this() {
    return (::CORBA::ValueMemberDef_ptr) _do_this(::CORBA::ValueMemberDef::_PD_repoId);
  }
};

class ValueDef :
  public virtual CORBA::_impl_ValueDef,
  public virtual Container,
    public virtual Contained,
    public virtual IDLType
{
public:
  virtual ~ValueDef();

  inline ::CORBA::ValueDef_ptr _this() {
    return (::CORBA::ValueDef_ptr) _do_this(::CORBA::ValueDef::_PD_repoId);
  }
};

class ValueBoxDef :
  public virtual CORBA::_impl_ValueBoxDef,
  public virtual TypedefDef
{
public:
  virtual ~ValueBoxDef();

  inline ::CORBA::ValueBoxDef_ptr _this() {
    return (::CORBA::ValueBoxDef_ptr) _do_this(::CORBA::ValueBoxDef::_PD_repoId);
  }
};

class AbstractInterfaceDef :
  public virtual CORBA::_impl_AbstractInterfaceDef,
  public virtual InterfaceDef
{
public:
  virtual ~AbstractInterfaceDef();

  inline ::CORBA::AbstractInterfaceDef_ptr _this() {
    return (::CORBA::AbstractInterfaceDef_ptr) _do_this(::CORBA::AbstractInterfaceDef::_PD_repoId);
  }
};

#endif

