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

#ifndef __java_util_concurrent_atomic_AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl__
#define __java_util_concurrent_atomic_AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl__

#pragma interface

#include <java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h>
extern "Java"
{
  namespace sun
  {
    namespace misc
    {
        class Unsafe;
    }
  }
}

class java::util::concurrent::atomic::AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl : public ::java::util::concurrent::atomic::AtomicIntegerFieldUpdater
{

public: // actually package-private
  AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl(::java::lang::Class *, ::java::lang::String *);
private:
  void fullCheck(::java::lang::Object *);
public:
  virtual jboolean compareAndSet(::java::lang::Object *, jint, jint);
  virtual jboolean weakCompareAndSet(::java::lang::Object *, jint, jint);
  virtual void set(::java::lang::Object *, jint);
  virtual void lazySet(::java::lang::Object *, jint);
  virtual jint get(::java::lang::Object *);
private:
  void ensureProtectedAccess(::java::lang::Object *);
  static ::sun::misc::Unsafe * unsafe;
  jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicIntegerFieldUpdater)))) offset;
  ::java::lang::Class * tclass;
  ::java::lang::Class * cclass;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_concurrent_atomic_AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl__
