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

#ifndef __gnu_classpath_jdwp_exception_JdwpException__
#define __gnu_classpath_jdwp_exception_JdwpException__

#pragma interface

#include <java/lang/Exception.h>
extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        namespace exception
        {
            class JdwpException;
        }
      }
    }
  }
}

class gnu::classpath::jdwp::exception::JdwpException : public ::java::lang::Exception
{

public:
  JdwpException(jshort, ::java::lang::Throwable *);
  JdwpException(jshort, ::java::lang::String *);
  virtual jshort getErrorCode();
private:
  jshort __attribute__((aligned(__alignof__( ::java::lang::Exception)))) _errorCode;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_exception_JdwpException__
