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

#ifndef __java_util_concurrent_atomic_AtomicBoolean__
#define __java_util_concurrent_atomic_AtomicBoolean__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace sun
  {
    namespace misc
    {
        class Unsafe;
    }
  }
}

class java::util::concurrent::atomic::AtomicBoolean : public ::java::lang::Object
{

public:
  AtomicBoolean(jboolean);
  AtomicBoolean();
  virtual jboolean get();
  virtual jboolean compareAndSet(jboolean, jboolean);
  virtual jboolean weakCompareAndSet(jboolean, jboolean);
  virtual void set(jboolean);
  virtual void lazySet(jboolean);
  virtual jboolean getAndSet(jboolean);
  virtual ::java::lang::String * toString();
private:
  static const jlong serialVersionUID = 4654671469794556979LL;
  static ::sun::misc::Unsafe * unsafe;
  static jlong valueOffset;
  jint volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_concurrent_atomic_AtomicBoolean__
