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

#ifndef __java_util_concurrent_BlockingQueue__
#define __java_util_concurrent_BlockingQueue__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>


class java::util::concurrent::BlockingQueue : public ::java::lang::Object
{

public:
  virtual jboolean add(::java::lang::Object *) = 0;
  virtual jboolean offer(::java::lang::Object *) = 0;
  virtual void put(::java::lang::Object *) = 0;
  virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
  virtual ::java::lang::Object * take() = 0;
  virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *) = 0;
  virtual jint remainingCapacity() = 0;
  virtual jboolean remove(::java::lang::Object *) = 0;
  virtual jboolean contains(::java::lang::Object *) = 0;
  virtual jint drainTo(::java::util::Collection *) = 0;
  virtual jint drainTo(::java::util::Collection *, jint) = 0;
  virtual ::java::lang::Object * remove() = 0;
  virtual ::java::lang::Object * poll() = 0;
  virtual ::java::lang::Object * element() = 0;
  virtual ::java::lang::Object * peek() = 0;
  virtual jboolean addAll(::java::util::Collection *) = 0;
  virtual void clear() = 0;
  virtual jboolean containsAll(::java::util::Collection *) = 0;
  virtual jboolean isEmpty() = 0;
  virtual ::java::util::Iterator * iterator() = 0;
  virtual jboolean removeAll(::java::util::Collection *) = 0;
  virtual jboolean retainAll(::java::util::Collection *) = 0;
  virtual jint size() = 0;
  virtual JArray< ::java::lang::Object * > * toArray() = 0;
  virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_util_concurrent_BlockingQueue__
