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

#ifndef __gnu_java_net_protocol_ftp_BlockInputStream__
#define __gnu_java_net_protocol_ftp_BlockInputStream__

#pragma interface

#include <gnu/java/net/protocol/ftp/DTPInputStream.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace net
      {
        namespace protocol
        {
          namespace ftp
          {
              class BlockInputStream;
              class DTP;
          }
        }
      }
    }
  }
}

class gnu::java::net::protocol::ftp::BlockInputStream : public ::gnu::java::net::protocol::ftp::DTPInputStream
{

public: // actually package-private
  BlockInputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::InputStream *);
public:
  virtual jint read();
  virtual jint read(JArray< jbyte > *);
  virtual jint read(JArray< jbyte > *, jint, jint);
public: // actually package-private
  virtual void readHeader();
  static const jint EOF = 64;
  jint __attribute__((aligned(__alignof__( ::gnu::java::net::protocol::ftp::DTPInputStream)))) descriptor;
  jint max;
  jint count;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_net_protocol_ftp_BlockInputStream__
