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

#ifndef __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__
#define __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__

#pragma interface

#include <gnu/classpath/jdwp/processor/CommandSet.h>
extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
        namespace processor
        {
            class ClassObjectReferenceCommandSet;
        }
      }
    }
  }
  namespace java
  {
    namespace nio
    {
        class ByteBuffer;
    }
  }
}

class gnu::classpath::jdwp::processor::ClassObjectReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet
{

public:
  ClassObjectReferenceCommandSet();
  virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte);
  virtual void executeReflectedType(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *);
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__
