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

#ifndef __java_util_concurrent_LinkedBlockingDeque$AbstractItr__
#define __java_util_concurrent_LinkedBlockingDeque$AbstractItr__

#pragma interface

#include <java/lang/Object.h>

class java::util::concurrent::LinkedBlockingDeque$AbstractItr : public ::java::lang::Object
{

public: // actually package-private
  LinkedBlockingDeque$AbstractItr(::java::util::concurrent::LinkedBlockingDeque *);
  virtual void advance() = 0;
public:
  virtual jboolean hasNext();
  virtual ::java::lang::Object * next();
  virtual void remove();
public: // actually package-private
  ::java::util::concurrent::LinkedBlockingDeque$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__;
  ::java::lang::Object * nextItem;
private:
  ::java::util::concurrent::LinkedBlockingDeque$Node * lastRet;
public: // actually package-private
  ::java::util::concurrent::LinkedBlockingDeque * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_concurrent_LinkedBlockingDeque$AbstractItr__
