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

#ifndef __java_lang_management_MonitorInfo__
#define __java_lang_management_MonitorInfo__

#pragma interface

#include <java/lang/management/LockInfo.h>
extern "Java"
{
  namespace javax
  {
    namespace management
    {
      namespace openmbean
      {
          class CompositeData;
      }
    }
  }
}

class java::lang::management::MonitorInfo : public ::java::lang::management::LockInfo
{

public:
  MonitorInfo(::java::lang::String *, jint, jint, ::java::lang::StackTraceElement *);
  static ::java::lang::management::MonitorInfo * from(::javax::management::openmbean::CompositeData *);
  virtual jint getLockedStackDepth();
  virtual ::java::lang::StackTraceElement * getLockedStackFrame();
private:
  jint __attribute__((aligned(__alignof__( ::java::lang::management::LockInfo)))) stackDepth;
  ::java::lang::StackTraceElement * stackFrame;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_management_MonitorInfo__
