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

#ifndef __gnu_classpath_jdwp_event_VmInitEvent__
#define __gnu_classpath_jdwp_event_VmInitEvent__

#pragma interface

#include <gnu/classpath/jdwp/event/Event.h>
extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        namespace event
        {
            class VmInitEvent;
        }
      }
    }
  }
}

class gnu::classpath::jdwp::event::VmInitEvent : public ::gnu::classpath::jdwp::event::Event
{

public:
  VmInitEvent(::java::lang::Thread *);
  virtual ::java::lang::Object * getParameter(jint);
public: // actually protected
  virtual void _writeData(::java::io::DataOutputStream *);
private:
  ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _initialThread;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_event_VmInitEvent__
