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

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

#endif /* __java_lang_ThreadGroup__ */
