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

#ifndef __java_lang_ThreadGroup__
#define __java_lang_ThreadGroup__

#pragma interface

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

class java::lang::ThreadGroup : public ::java::lang::Object
{
private:
  ThreadGroup ();
public:
  ThreadGroup (::java::lang::String *);
  ThreadGroup (::java::lang::ThreadGroup *, ::java::lang::String *);
  ::java::lang::String *getName () { return name; }
  ::java::lang::ThreadGroup *getParent ();
  jint getMaxPriority () { return maxpri; }
  jboolean isDaemon () { return daemon_flag; }
  virtual jboolean isDestroyed ();
  void setDaemon (jboolean);
  void setMaxPriority (jint);
  jboolean parentOf (::java::lang::ThreadGroup *);
  void checkAccess ();
  virtual jint activeCount ();
  virtual jint enumerate (JArray< ::java::lang::Thread *> *);
  virtual jint enumerate (JArray< ::java::lang::Thread *> *, jboolean);
  virtual jint activeGroupCount ();
  virtual jint enumerate (JArray< ::java::lang::ThreadGroup *> *);
  virtual jint enumerate (JArray< ::java::lang::ThreadGroup *> *, jboolean);
  void stop ();
  void interrupt ();
  void suspend ();
  void resume ();
  void destroy ();
  virtual void list ();
  virtual void uncaughtException (::java::lang::Thread *, ::java::lang::Throwable *);
  virtual jboolean allowThreadSuspension (jboolean);
  virtual ::java::lang::String *toString ();
private:
  jint enumerate (JArray< ::java::lang::Thread *> *, jint, jboolean);
  jint enumerate (JArray< ::java::lang::ThreadGroup *> *, jint, jboolean);
  void list (::java::lang::String *);
public: // actually package-private
  void addThread (::java::lang::Thread *);
  void removeThread (::java::lang::Thread *);
  void removeGroup (::java::lang::ThreadGroup *);
  static ::java::lang::ThreadGroup *root;
  static jboolean had_uncaught_exception;
private:
  ::java::lang::ThreadGroup * __attribute__((aligned(__alignof__( ::java::lang::Object )))) parent;
public: // actually package-private
  ::java::lang::String *name;
private:
  ::java::util::Vector *threads;
  ::java::util::Vector *groups;
  jboolean daemon_flag;
  jint maxpri;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_lang_ThreadGroup__ */
