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

#ifndef __org_omg_CORBA_FREE_MEM__
#define __org_omg_CORBA_FREE_MEM__

#pragma interface

#include <org/omg/CORBA/SystemException.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class CompletionStatus;
          class FREE_MEM;
      }
    }
  }
}

class org::omg::CORBA::FREE_MEM : public ::org::omg::CORBA::SystemException
{

public:
  FREE_MEM(::java::lang::String *);
  FREE_MEM();
  FREE_MEM(jint, ::org::omg::CORBA::CompletionStatus *);
  FREE_MEM(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *);
private:
  static const jlong serialVersionUID = -1333559476995791982LL;
public:
  static ::java::lang::Class class$;
};

#endif // __org_omg_CORBA_FREE_MEM__
