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

#ifndef __gnu_CORBA_gnuNamedValue__
#define __gnu_CORBA_gnuNamedValue__

#pragma interface

#include <org/omg/CORBA/NamedValue.h>
extern "Java"
{
  namespace gnu
  {
    namespace CORBA
    {
        class gnuNamedValue;
    }
  }
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class Any;
      }
    }
  }
}

class gnu::CORBA::gnuNamedValue : public ::org::omg::CORBA::NamedValue
{

public:
  gnuNamedValue();
  virtual void setFlags(jint);
  virtual void setName(::java::lang::String *);
  virtual void setValue(::org::omg::CORBA::Any *);
  virtual jint flags();
  virtual ::java::lang::String * name();
  virtual ::org::omg::CORBA::Any * value();
private:
  ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::org::omg::CORBA::NamedValue)))) m_value;
  ::java::lang::String * m_name;
  jint m_flags;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_CORBA_gnuNamedValue__
