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

#ifndef __gnu_classpath_jdwp_VMIdManager$IdFactory__
#define __gnu_classpath_jdwp_VMIdManager$IdFactory__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
      namespace jdwp
      {
          class VMIdManager$IdFactory;
        namespace id
        {
            class ObjectId;
            class ReferenceTypeId;
        }
      }
    }
  }
}

class gnu::classpath::jdwp::VMIdManager$IdFactory : public ::java::lang::Object
{

  VMIdManager$IdFactory();
public:
  static ::gnu::classpath::jdwp::id::ObjectId * newObjectId(::java::lang::ref::SoftReference *);
  static ::gnu::classpath::jdwp::id::ReferenceTypeId * newReferenceTypeId(::java::lang::ref::SoftReference *);
private:
  static ::java::lang::Object * _idLock;
  static ::java::lang::Object * _ridLock;
  static jlong _lastId;
  static jlong _lastRid;
  static ::java::util::HashMap * _idList;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_jdwp_VMIdManager$IdFactory__
