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

#ifndef __java_util_ArrayDeque$DeqIterator__
#define __java_util_ArrayDeque$DeqIterator__

#pragma interface

#include <java/lang/Object.h>

class java::util::ArrayDeque$DeqIterator : public ::java::lang::Object
{

  ArrayDeque$DeqIterator(::java::util::ArrayDeque *);
public:
  virtual jboolean hasNext();
  virtual ::java::lang::Object * next();
  virtual void remove();
public: // actually package-private
  ArrayDeque$DeqIterator(::java::util::ArrayDeque *, ::java::util::ArrayDeque$DeqIterator *);
private:
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cursor;
  jint fence;
  jint lastRet;
public: // actually package-private
  ::java::util::ArrayDeque * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_ArrayDeque$DeqIterator__
