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

#ifndef __javax_transaction_xa_XAException__
#define __javax_transaction_xa_XAException__

#pragma interface

#include <java/lang/Exception.h>
extern "Java"
{
  namespace javax
  {
    namespace transaction
    {
      namespace xa
      {
          class XAException;
      }
    }
  }
}

class javax::transaction::xa::XAException : public ::java::lang::Exception
{

public:
  XAException();
  XAException(::java::lang::String *);
  XAException(jint);
  jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) errorCode;
  static const jint XA_RBBASE = 100;
  static const jint XA_RBROLLBACK = 100;
  static const jint XA_RBCOMMFAIL = 101;
  static const jint XA_RBDEADLOCK = 102;
  static const jint XA_RBINTEGRITY = 103;
  static const jint XA_RBOTHER = 104;
  static const jint XA_RBPROTO = 105;
  static const jint XA_RBTIMEOUT = 106;
  static const jint XA_RBTRANSIENT = 107;
  static const jint XA_RBEND = 107;
  static const jint XA_NOMIGRATE = 9;
  static const jint XA_HEURHAZ = 8;
  static const jint XA_HEURCOM = 7;
  static const jint XA_HEURRB = 6;
  static const jint XA_HEURMIX = 5;
  static const jint XA_RETRY = 4;
  static const jint XA_RDONLY = 3;
  static const jint XAER_ASYNC = -2;
  static const jint XAER_RMERR = -3;
  static const jint XAER_NOTA = -4;
  static const jint XAER_INVAL = -5;
  static const jint XAER_PROTO = -6;
  static const jint XAER_RMFAIL = -7;
  static const jint XAER_DUPID = -8;
  static const jint XAER_OUTSIDE = -9;
  static ::java::lang::Class class$;
};

#endif // __javax_transaction_xa_XAException__
