#ifndef _REF_H
#define _REF_H

#include <iostream>
#include <sys/types.h>

using namespace std;

namespace java {
namespace lang { 
class Object;
class String;
class Byte;
class Character;
class Integer;
class Float;
class Double;
class Long;
class Short;
class Boolean;
}
}

typedef java::lang::Boolean boolean;

class REF {
public:
   java::lang::Object * ptr;
   long count;
   REF() { 
      ptr = 0;
      count = 0;
   }
};

class Ref {
   REF * ref;

public:
   Ref();

   Ref(java::lang::Object * p);

   Ref(const Ref & ref);

   virtual ~Ref();

   Ref & operator=(const Ref & right);

   java::lang::Object * get_ptr();
};

#endif /* _REF_H */
