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

#ifndef __gnu_javax_rmi_CORBA_UtilDelegateImpl__
#define __gnu_javax_rmi_CORBA_UtilDelegateImpl__

#pragma interface

#include <gnu/javax/rmi/CORBA/RmiUtilities.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace rmi
      {
        namespace CORBA
        {
            class UtilDelegateImpl;
        }
      }
    }
  }
  namespace java
  {
    namespace rmi
    {
        class Remote;
        class RemoteException;
    }
  }
  namespace javax
  {
    namespace rmi
    {
      namespace CORBA
      {
          class Stub;
          class Tie;
          class ValueHandler;
      }
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class ORB;
          class SystemException;
        namespace portable
        {
            class InputStream;
            class OutputStream;
        }
      }
    }
  }
}

class gnu::javax::rmi::CORBA::UtilDelegateImpl : public ::gnu::javax::rmi::CORBA::RmiUtilities
{

public:
  UtilDelegateImpl();
  virtual ::java::lang::Object * copyObject(::java::lang::Object *, ::org::omg::CORBA::ORB *);
  virtual JArray< ::java::lang::Object * > * copyObjects(JArray< ::java::lang::Object * > *, ::org::omg::CORBA::ORB *);
  virtual ::javax::rmi::CORBA::ValueHandler * createValueHandler();
  virtual ::java::lang::String * getCodebase(::java::lang::Class *);
  virtual ::javax::rmi::CORBA::Tie * getTie(::java::rmi::Remote *);
private:
  ::java::lang::String * getTieClassName(::java::lang::String *);
public:
  virtual void registerTarget(::javax::rmi::CORBA::Tie *, ::java::rmi::Remote *);
  virtual void unexportObject(::java::rmi::Remote *);
  virtual jboolean isLocal(::javax::rmi::CORBA::Stub *);
  virtual ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *);
  virtual ::java::rmi::RemoteException * mapSystemException(::org::omg::CORBA::SystemException *);
  virtual ::java::rmi::RemoteException * wrapException(::java::lang::Throwable *);
  virtual void writeAbstractObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *);
  virtual void writeAny(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *);
public: // actually package-private
  virtual void writeAnyAsRemote(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *);
  virtual ::java::lang::String * getName(::java::lang::String *);
public:
  virtual ::java::lang::Object * readAny(::org::omg::CORBA::portable::InputStream *);
  virtual void writeRemoteObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *);
public: // actually package-private
  static ::javax::rmi::CORBA::ValueHandler * m_ValueHandler;
  static ::java::util::Hashtable * m_Ties;
  static ::java::util::Hashtable * m_Targets;
  static ::java::lang::String * m_StandardPackage;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_rmi_CORBA_UtilDelegateImpl__
