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

#ifndef __org_omg_PortableServer_ForwardRequest__
#define __org_omg_PortableServer_ForwardRequest__

#pragma interface

#include <org/omg/CORBA/UserException.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class Object;
      }
      namespace PortableServer
      {
          class ForwardRequest;
      }
    }
  }
}

class org::omg::PortableServer::ForwardRequest : public ::org::omg::CORBA::UserException
{

public:
  ForwardRequest();
  ForwardRequest(::java::lang::String *, ::org::omg::CORBA::Object *);
  ForwardRequest(::org::omg::CORBA::Object *);
private:
  static const jlong serialVersionUID = -4159318367582473975LL;
public:
  ::org::omg::CORBA::Object * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) forward_reference;
  static ::java::lang::Class class$;
};

#endif // __org_omg_PortableServer_ForwardRequest__
