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

#ifndef __javax_imageio_stream_IIOByteBuffer__
#define __javax_imageio_stream_IIOByteBuffer__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace imageio
    {
      namespace stream
      {
          class IIOByteBuffer;
      }
    }
  }
}

class javax::imageio::stream::IIOByteBuffer : public ::java::lang::Object
{

public:
  IIOByteBuffer(JArray< jbyte > *, jint, jint);
  virtual JArray< jbyte > * getData();
  virtual void setData(JArray< jbyte > *);
  virtual jint getOffset();
  virtual void setOffset(jint);
  virtual jint getLength();
  virtual void setLength(jint);
private:
  JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
  jint offset;
  jint length;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_imageio_stream_IIOByteBuffer__
