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

#ifndef __gnu_classpath_jdwp_event_EventRequest__
#define __gnu_classpath_jdwp_event_EventRequest__

#pragma interface

#include <java/lang/Object.h>

extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        namespace event
        {
          class EventRequest;
          class Event;
          namespace filters
          {
            class IEventFilter;
          }
        }
      }
    }
  }
}

class gnu::classpath::jdwp::event::EventRequest : public ::java::lang::Object
{
public:
  EventRequest (jbyte, jbyte);
  EventRequest (jint, jbyte, jbyte);
  virtual void addFilter (::gnu::classpath::jdwp::event::filters::IEventFilter *);
  virtual ::java::util::Collection *getFilters () { return reinterpret_cast< ::java::util::Collection *> (_filters); }
  virtual jbyte getSuspendPolicy () { return _suspendPolicy; }
  virtual jint getId () { return _id; }
  virtual void setId (jint);
  virtual jbyte getEventKind () { return _kind; }
  virtual jboolean matches (::gnu::classpath::jdwp::event::Event *);
  static const jint EVENT_SINGLE_STEP = 1L;
  static const jint EVENT_BREAKPOINT = 2L;
  static const jint EVENT_FRAME_POP = 3L;
  static const jint EVENT_EXCEPTION = 4L;
  static const jint EVENT_USER_DEFINED = 5L;
  static const jint EVENT_THREAD_START = 6L;
  static const jint EVENT_THREAD_END = 7L;
  static const jint EVENT_CLASS_PREPARE = 8L;
  static const jint EVENT_CLASS_UNLOAD = 9L;
  static const jint EVENT_CLASS_LOAD = 10L;
  static const jint EVENT_FIELD_ACCESS = 20L;
  static const jint EVENT_FIELD_MODIFY = 21L;
  static const jint EVENT_METHOD_ENTRY = 40L;
  static const jint EVENT_METHOD_EXIT = 41L;
  static const jint EVENT_VM_INIT = 90L;
  static const jint EVENT_VM_DEATH = 99L;
  static const jint SUSPEND_NONE = 0L;
  static const jint SUSPEND_THREAD = 1L;
  static const jint SUSPEND_ALL = 2L;
private:
  static jint _last_id;
  static ::java::lang::Object *_idLock;
  ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object )))) _filters;
  jint _id;
  jbyte _suspendPolicy;
  jbyte _kind;
public:

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

#endif /* __gnu_classpath_jdwp_event_EventRequest__ */
