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

#ifndef __org_omg_PortableServer_ImplicitActivationPolicyOperations__
#define __org_omg_PortableServer_ImplicitActivationPolicyOperations__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class Policy;
      }
      namespace PortableServer
      {
          class ImplicitActivationPolicyOperations;
          class ImplicitActivationPolicyValue;
      }
    }
  }
}

class org::omg::PortableServer::ImplicitActivationPolicyOperations : public ::java::lang::Object
{

public:
  virtual ::org::omg::PortableServer::ImplicitActivationPolicyValue * value() = 0;
  virtual ::org::omg::CORBA::Policy * copy() = 0;
  virtual void destroy() = 0;
  virtual jint policy_type() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_omg_PortableServer_ImplicitActivationPolicyOperations__
