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

#ifndef __gnu_awt_xlib_XGraphicsConfiguration$FontMetricsCache$PerDisplayCache__
#define __gnu_awt_xlib_XGraphicsConfiguration$FontMetricsCache$PerDisplayCache__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace awt
    {
      namespace xlib
      {
          class XFontMetrics;
          class XGraphicsConfiguration$FontMetricsCache;
          class XGraphicsConfiguration$FontMetricsCache$PerDisplayCache;
      }
    }
  }
  namespace java
  {
    namespace awt
    {
        class Font;
    }
  }
}

class gnu::awt::xlib::XGraphicsConfiguration$FontMetricsCache$PerDisplayCache : public ::java::lang::Object
{

public: // actually package-private
  XGraphicsConfiguration$FontMetricsCache$PerDisplayCache(::gnu::awt::xlib::XGraphicsConfiguration$FontMetricsCache *);
  virtual ::gnu::awt::xlib::XFontMetrics * get(::java::awt::Font *);
  virtual void put(::java::awt::Font *, ::gnu::awt::xlib::XFontMetrics *);
private:
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) lruCount;
  ::java::util::Hashtable * entries;
public: // actually package-private
  ::gnu::awt::xlib::XGraphicsConfiguration$FontMetricsCache * this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_awt_xlib_XGraphicsConfiguration$FontMetricsCache$PerDisplayCache__
