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

#ifndef __gnu_java_rmi_server_RMIObjectOutputStream__
#define __gnu_java_rmi_server_RMIObjectOutputStream__

#pragma interface

#include <java/io/ObjectOutputStream.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace rmi
      {
        namespace server
        {
            class RMIObjectOutputStream;
        }
      }
    }
  }
}

class gnu::java::rmi::server::RMIObjectOutputStream : public ::java::io::ObjectOutputStream
{

public:
  RMIObjectOutputStream(::java::io::OutputStream *);
public: // actually protected
  virtual void setAnnotation(::java::lang::String *);
  virtual void annotateClass(::java::lang::Class *);
  virtual void annotateProxyClass(::java::lang::Class *);
  virtual ::java::lang::Object * replaceObject(::java::lang::Object *);
  virtual void writeValue(::java::lang::Object *, ::java::lang::Class *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_rmi_server_RMIObjectOutputStream__
