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

#ifndef __java_io_PipedOutputStream__
#define __java_io_PipedOutputStream__

#pragma interface

#include <java/io/OutputStream.h>
#include <gcj/array.h>


class java::io::PipedOutputStream : public ::java::io::OutputStream
{

public:
  PipedOutputStream();
  PipedOutputStream(::java::io::PipedInputStream *);
  virtual void connect(::java::io::PipedInputStream *);
  virtual void write(jint);
  virtual void write(JArray< jbyte > *, jint, jint);
  virtual void flush();
  virtual void close();
public: // actually package-private
  ::java::io::PipedInputStream * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) sink;
  jboolean closed;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_PipedOutputStream__
