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

#ifndef __gnu_CORBA_NamingService_NamingServiceTransient$1__
#define __gnu_CORBA_NamingService_NamingServiceTransient$1__

#pragma interface

#include <java/lang/Thread.h>
extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
      namespace NamingService
      {
          class NamingServiceTransient$1;
      }
        class OrbFunctional;
    }
  }
}

class gnu::CORBA::NamingService::NamingServiceTransient$1 : public ::java::lang::Thread
{

public: // actually package-private
  NamingServiceTransient$1(::gnu::CORBA::OrbFunctional *);
public:
  void run();
private:
  ::gnu::CORBA::OrbFunctional * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) val$orb;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_NamingService_NamingServiceTransient$1__
