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

#ifndef __gnu_CORBA_Poa_gnuPOA__
#define __gnu_CORBA_Poa_gnuPOA__

#pragma interface

#include <org/omg/CORBA/LocalObject.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
      namespace Poa
      {
          class AOM;
          class AOM$Obj;
          class ORB_1_4;
          class ServantDelegateImpl;
          class gnuPOA;
      }
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class ORB;
          class Object;
          class Policy;
          class SetOverrideType;
      }
      namespace PortableInterceptor
      {
          class ObjectReferenceFactory;
          class ObjectReferenceTemplate;
      }
      namespace PortableServer
      {
          class AdapterActivator;
          class IdAssignmentPolicy;
          class IdAssignmentPolicyValue;
          class IdUniquenessPolicy;
          class IdUniquenessPolicyValue;
          class ImplicitActivationPolicy;
          class ImplicitActivationPolicyValue;
          class LifespanPolicy;
          class LifespanPolicyValue;
          class POA;
          class POAManager;
          class RequestProcessingPolicy;
          class RequestProcessingPolicyValue;
          class Servant;
          class ServantActivator;
          class ServantLocator;
          class ServantManager;
          class ServantRetentionPolicy;
          class ServantRetentionPolicyValue;
          class ThreadPolicy;
          class ThreadPolicyValue;
      }
    }
  }
}

class gnu::CORBA::Poa::gnuPOA : public ::org::omg::CORBA::LocalObject
{

public:
  gnuPOA(::gnu::CORBA::Poa::gnuPOA *, ::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *, ::gnu::CORBA::Poa::ORB_1_4 *);
  virtual void waitWhileRunning();
public: // actually protected
  virtual void etherealizeAll();
  virtual ::org::omg::PortableServer::POA * createPoaInstance(::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *, ::gnu::CORBA::Poa::ORB_1_4 *);
public:
  virtual jboolean applies(::java::lang::Object *);
  virtual void required(::java::lang::Object *);
  virtual void excluding(::java::lang::Object *);
  virtual ::org::omg::PortableServer::POA * find_POA(::java::lang::String *, jboolean);
  virtual JArray< jbyte > * activate_object(::org::omg::PortableServer::Servant *);
  virtual void activate_object_with_id(JArray< jbyte > *, ::org::omg::PortableServer::Servant *);
  virtual void activate_object_with_id(JArray< jbyte > *, ::org::omg::PortableServer::Servant *, jboolean);
private:
  void locateServant(JArray< jbyte > *, ::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::AOM$Obj *, jboolean);
public:
  virtual void deactivate_object(JArray< jbyte > *);
  virtual ::org::omg::CORBA::Object * create_reference(::java::lang::String *);
  virtual ::org::omg::CORBA::Object * create_reference_with_id(JArray< jbyte > *, ::java::lang::String *);
  virtual ::org::omg::PortableServer::POA * create_POA(::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *);
  virtual ::org::omg::PortableServer::Servant * get_servant();
  virtual void set_servant(::org::omg::PortableServer::Servant *);
  virtual void set_servant_manager(::org::omg::PortableServer::ServantManager *);
  virtual ::org::omg::PortableServer::ServantManager * get_servant_manager();
  virtual JArray< jbyte > * id();
  virtual ::org::omg::CORBA::Object * id_to_reference(JArray< jbyte > *);
  virtual ::org::omg::PortableServer::Servant * id_to_servant(JArray< jbyte > *);
  virtual JArray< jbyte > * reference_to_id(::org::omg::CORBA::Object *);
  virtual ::org::omg::PortableServer::Servant * reference_to_servant(::org::omg::CORBA::Object *);
  virtual JArray< jbyte > * servant_to_id(::org::omg::PortableServer::Servant *);
  virtual ::org::omg::CORBA::Object * servant_to_reference(::org::omg::PortableServer::Servant *);
private:
  ::org::omg::PortableServer::Servant * incarnate(::gnu::CORBA::Poa::AOM$Obj *, JArray< jbyte > *, ::org::omg::PortableServer::Servant *, jboolean);
public:
  virtual ::org::omg::PortableServer::POAManager * the_POAManager();
  virtual ::org::omg::PortableServer::AdapterActivator * the_activator();
  virtual void the_activator(::org::omg::PortableServer::AdapterActivator *);
  virtual JArray< ::org::omg::PortableServer::POA * > * the_children();
  virtual ::java::lang::String * the_name();
  virtual ::org::omg::PortableServer::POA * the_parent();
  virtual ::org::omg::PortableServer::IdAssignmentPolicy * create_id_assignment_policy(::org::omg::PortableServer::IdAssignmentPolicyValue *);
  virtual ::org::omg::PortableServer::IdUniquenessPolicy * create_id_uniqueness_policy(::org::omg::PortableServer::IdUniquenessPolicyValue *);
  virtual ::org::omg::PortableServer::ImplicitActivationPolicy * create_implicit_activation_policy(::org::omg::PortableServer::ImplicitActivationPolicyValue *);
  virtual ::org::omg::PortableServer::LifespanPolicy * create_lifespan_policy(::org::omg::PortableServer::LifespanPolicyValue *);
  virtual ::org::omg::PortableServer::RequestProcessingPolicy * create_request_processing_policy(::org::omg::PortableServer::RequestProcessingPolicyValue *);
  virtual ::org::omg::PortableServer::ServantRetentionPolicy * create_servant_retention_policy(::org::omg::PortableServer::ServantRetentionPolicyValue *);
  virtual ::org::omg::PortableServer::ThreadPolicy * create_thread_policy(::org::omg::PortableServer::ThreadPolicyValue *);
  virtual void destroy(jboolean, jboolean);
public: // actually protected
  virtual void finalize();
private:
  void unregisterFromManager();
public:
  virtual ::org::omg::CORBA::Policy * _get_policy(jint);
  virtual JArray< ::org::omg::CORBA::Policy * > * getPolicyArray();
  virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *);
  virtual ::org::omg::CORBA::ORB * orb();
private:
  void create_and_connect(JArray< jbyte > *, ::java::lang::String *, ::gnu::CORBA::Poa::ServantDelegateImpl *);
public: // actually package-private
  virtual void checkDiscarding();
public: // actually protected
  virtual void connect_to_orb(JArray< jbyte > *, ::org::omg::CORBA::Object *);
public:
  virtual ::java::lang::String * toString();
public: // actually protected
  virtual jboolean validatePolicies(JArray< ::org::omg::CORBA::Policy * > *);
public:
  virtual ::gnu::CORBA::Poa::AOM$Obj * findObject(::org::omg::CORBA::Object *);
  virtual ::gnu::CORBA::Poa::AOM$Obj * findKey(JArray< jbyte > *, JArray< jbyte > *);
  virtual ::gnu::CORBA::Poa::AOM$Obj * findIorKey(JArray< jbyte > *);
  virtual JArray< jbyte > * toIORKey(JArray< jbyte > *);
  virtual JArray< jbyte > * idFormIor(JArray< jbyte > *);
  virtual ::gnu::CORBA::Poa::AOM$Obj * findServant(::org::omg::PortableServer::Servant *);
  virtual ::org::omg::PortableInterceptor::ObjectReferenceTemplate * getReferenceTemplate();
  virtual ::org::omg::PortableInterceptor::ObjectReferenceFactory * getReferenceFactory();
  virtual void setReferenceFactory(::org::omg::PortableInterceptor::ObjectReferenceFactory *);
  virtual ::org::omg::CORBA::Object * make_object(::java::lang::String *, JArray< jbyte > *);
  virtual JArray< ::java::lang::String * > * _truncatable_ids();
private:
  static const jlong serialVersionUID = 1LL;
public: // actually package-private
  ::org::omg::PortableInterceptor::ObjectReferenceTemplate * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) refTemplate;
  static JArray< ::java::lang::String * > * ref_template_ids;
public:
  ::gnu::CORBA::Poa::AOM * aom;
public: // actually package-private
  ::java::util::ArrayList * children;
  ::java::lang::String * name;
  ::org::omg::PortableServer::POA * parent;
  static const jint SIGNATURE = 1718773093;
  ::org::omg::PortableServer::AdapterActivator * m_activator;
  ::org::omg::PortableServer::POAManager * m_manager;
  ::org::omg::PortableServer::ServantActivator * servant_activator;
  ::org::omg::PortableServer::ServantLocator * servant_locator;
  ::org::omg::PortableServer::Servant * default_servant;
private:
  JArray< jbyte > * m_poa_id;
  ::java::util::HashSet * m_policies;
public: // actually package-private
  JArray< ::org::omg::CORBA::Policy * > * s_policies;
  ::gnu::CORBA::Poa::ORB_1_4 * m_orb;
  jboolean m_inDestruction;
public:
  jboolean retain_servant;
public: // actually package-private
  ::org::omg::PortableInterceptor::ObjectReferenceFactory * m_object_factory;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_Poa_gnuPOA__
