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

#ifndef __gnu_CORBA_StubLocator__
#define __gnu_CORBA_StubLocator__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
        class IOR;
        class StubLocator;
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class ORB;
        namespace portable
        {
            class ObjectImpl;
        }
      }
    }
  }
}

class gnu::CORBA::StubLocator : public ::java::lang::Object
{

public:
  StubLocator();
  static ::org::omg::CORBA::portable::ObjectImpl * search(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *);
public: // actually protected
  static ::org::omg::CORBA::portable::ObjectImpl * createDefaultStub(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_StubLocator__
