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

#ifndef __java_rmi_server_RemoteObjectInvocationHandler__
#define __java_rmi_server_RemoteObjectInvocationHandler__

#pragma interface

#include <java/rmi/server/RemoteObject.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace rmi
    {
      namespace server
      {
          class RemoteObjectInvocationHandler;
          class RemoteRef;
      }
    }
  }
}

class java::rmi::server::RemoteObjectInvocationHandler : public ::java::rmi::server::RemoteObject
{

public:
  RemoteObjectInvocationHandler(::java::rmi::server::RemoteRef *);
  virtual ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *);
public: // actually package-private
  static const jlong serialVersionUID = 2LL;
  static ::java::util::Hashtable * methodHashCodes;
  static JArray< ::java::lang::Class * > * noArgsC;
  static JArray< ::java::lang::Class * > * anObjectC;
  static JArray< ::java::lang::Object * > * noArgs;
public:
  static ::java::lang::Class class$;
};

#endif // __java_rmi_server_RemoteObjectInvocationHandler__
