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

#ifndef __gnu_java_net_protocol_ftp_DTPOutputStream__
#define __gnu_java_net_protocol_ftp_DTPOutputStream__

#pragma interface

#include <java/io/FilterOutputStream.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace net
      {
        namespace protocol
        {
          namespace ftp
          {
              class DTP;
              class DTPOutputStream;
          }
        }
      }
    }
  }
}

class gnu::java::net::protocol::ftp::DTPOutputStream : public ::java::io::FilterOutputStream
{

public: // actually package-private
  DTPOutputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::OutputStream *);
  virtual void setTransferComplete(jboolean);
public:
  virtual void close();
public: // actually package-private
  ::gnu::java::net::protocol::ftp::DTP * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) dtp;
  jboolean transferComplete;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_net_protocol_ftp_DTPOutputStream__
