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

#ifndef __gnu_java_nio_FileLockImpl__
#define __gnu_java_nio_FileLockImpl__

#pragma interface

#include <java/nio/channels/FileLock.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace nio
      {
          class FileLockImpl;
        namespace channels
        {
            class FileChannelImpl;
        }
      }
    }
  }
}

class gnu::java::nio::FileLockImpl : public ::java::nio::channels::FileLock
{

public:
  FileLockImpl(::gnu::java::nio::channels::FileChannelImpl *, jlong, jlong, jboolean);
public: // actually protected
  void finalize();
public:
  jboolean isValid();
  void close();
  void release();
private:
  jboolean __attribute__((aligned(__alignof__( ::java::nio::channels::FileLock)))) valid;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_nio_FileLockImpl__
