
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_CORBA_gnuExceptionList__
#define __gnu_CORBA_gnuExceptionList__

#pragma interface

#include <org/omg/CORBA/ExceptionList.h>
extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
        class CorbaList;
        class gnuExceptionList;
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class TypeCode;
      }
    }
  }
}

class gnu::CORBA::gnuExceptionList : public ::org::omg::CORBA::ExceptionList
{

public:
  gnuExceptionList();
  virtual void add(::org::omg::CORBA::TypeCode *);
  virtual jint count();
  virtual ::org::omg::CORBA::TypeCode * item(jint);
  virtual void remove(jint);
public: // actually protected
  ::gnu::CORBA::CorbaList * __attribute__((aligned(__alignof__( ::org::omg::CORBA::ExceptionList)))) list;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_gnuExceptionList__
