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

#ifndef __gnu_java_rmi_server_UnicastRemoteStub__
#define __gnu_java_rmi_server_UnicastRemoteStub__

#pragma interface

#include <java/rmi/server/RemoteStub.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace rmi
      {
        namespace server
        {
            class UnicastRemoteStub;
        }
      }
    }
  }
  namespace java
  {
    namespace rmi
    {
      namespace server
      {
          class RemoteRef;
          class RemoteStub;
      }
    }
  }
}

class gnu::java::rmi::server::UnicastRemoteStub : public ::java::rmi::server::RemoteStub
{

public:
  UnicastRemoteStub();
  static void setStubRef(::java::rmi::server::RemoteStub *, ::java::rmi::server::RemoteRef *);
  static ::java::lang::Class class$;
};

#endif // __gnu_java_rmi_server_UnicastRemoteStub__
