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

#ifndef __gnu_classpath_jdwp_event_ThreadStartEvent__
#define __gnu_classpath_jdwp_event_ThreadStartEvent__

#pragma interface

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

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

public:
  ThreadStartEvent(::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)))) _thread;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_event_ThreadStartEvent__
