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

#ifndef __gnu_classpath_jdwp_VMVirtualMachine__
#define __gnu_classpath_jdwp_VMVirtualMachine__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace nio
    {
      class ByteBuffer;
    }
  }
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        class VMVirtualMachine;
        namespace event
        {
          class EventRequest;
        }
        namespace util
        {
          class MethodResult;
        }
        class VMFrame;
        class VMMethod;
      }
    }
  }
}

class gnu::classpath::jdwp::VMVirtualMachine : public ::java::lang::Object
{
public:
  static void initialize ();
  static void suspendThread (::java::lang::Thread *);
  static void suspendAllThreads ();
  static void resumeThread (::java::lang::Thread *);
  static void resumeAllThreads ();
  static jint getSuspendCount (::java::lang::Thread *);
  static jint getAllLoadedClassesCount ();
  static ::java::util::Iterator *getAllLoadedClasses ();
  static jint getClassStatus (::java::lang::Class *);
  static JArray< ::gnu::classpath::jdwp::VMMethod *> *getAllClassMethods (::java::lang::Class *);
  static ::gnu::classpath::jdwp::VMMethod *getClassMethod (::java::lang::Class *, jlong);
  static ::java::util::ArrayList *getFrames (::java::lang::Thread *, jint, jint);
  static ::gnu::classpath::jdwp::VMFrame *getFrame (::java::lang::Thread *, ::java::nio::ByteBuffer *);
  static jint getFrameCount (::java::lang::Thread *);
  static jint getThreadStatus (::java::lang::Thread *);
  static ::java::util::ArrayList *getLoadRequests (::java::lang::ClassLoader *);
  static ::gnu::classpath::jdwp::util::MethodResult *executeMethod (::java::lang::Object *, ::java::lang::Thread *, ::java::lang::Class *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object *> *, jboolean);
  static ::java::lang::String *getSourceFile (::java::lang::Class *);
  static void registerEvent (::gnu::classpath::jdwp::event::EventRequest *);
  static void unregisterEvent (::gnu::classpath::jdwp::event::EventRequest *);
  static void clearEvents (jbyte);
  VMVirtualMachine ();
private:
  static ::java::util::Hashtable *_jdwp_suspend_counts;
public:

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

#endif /* __gnu_classpath_jdwp_VMVirtualMachine__ */
