/*
 * This file was generated by orbit-idl - DO NOT EDIT!
 */

#include <glib.h>
#define ORBIT_IDL_SERIAL 9
#include <orb/orbit.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* Begin CORBA module CORBA */

#ifndef _CORBA_Identifier_defined
#define _CORBA_Identifier_defined

typedef CORBA_char * CORBA_Identifier;
#endif /* !_CORBA_Identifier_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_Identifier_struct;
#define TC_CORBA_Identifier (&TC_CORBA_Identifier_struct)
extern CORBA_Identifier* CORBA_Identifier__alloc(void);
#define CORBA_Identifier__free CORBA_string__free

#ifndef _CORBA_ScopedName_defined
#define _CORBA_ScopedName_defined

typedef CORBA_char * CORBA_ScopedName;
#endif /* !_CORBA_ScopedName_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ScopedName_struct;
#define TC_CORBA_ScopedName (&TC_CORBA_ScopedName_struct)
extern CORBA_ScopedName* CORBA_ScopedName__alloc(void);
#define CORBA_ScopedName__free CORBA_string__free

#ifndef _CORBA_RepositoryId_defined
#define _CORBA_RepositoryId_defined

typedef CORBA_char * CORBA_RepositoryId;
#endif /* !_CORBA_RepositoryId_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_RepositoryId_struct;
#define TC_CORBA_RepositoryId (&TC_CORBA_RepositoryId_struct)
extern CORBA_RepositoryId* CORBA_RepositoryId__alloc(void);
#define CORBA_RepositoryId__free CORBA_string__free

#ifndef _CORBA_DefinitionKind_defined
#define _CORBA_DefinitionKind_defined

typedef enum {
  CORBA_dk_none,
  CORBA_dk_all,
  CORBA_dk_Attribute,
  CORBA_dk_Constant,
  CORBA_dk_Exception,
  CORBA_dk_Interface,
  CORBA_dk_Module,
  CORBA_dk_Operation,
  CORBA_dk_Typedef,
  CORBA_dk_Alias,
  CORBA_dk_Struct,
  CORBA_dk_Union,
  CORBA_dk_Enum,
  CORBA_dk_Primitive,
  CORBA_dk_String,
  CORBA_dk_Sequence,
  CORBA_dk_Array,
  CORBA_dk_Repository,
  CORBA_dk_Wstring,
  CORBA_dk_Fixed
} CORBA_DefinitionKind;
#endif /* !_CORBA_DefinitionKind_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_DefinitionKind_struct;
#define TC_CORBA_DefinitionKind (&TC_CORBA_DefinitionKind_struct)

/* Begin interface CORBA_IRObject */

  /* client-side data structures and methods */
#ifndef _CORBA_IRObject_defined
#define _CORBA_IRObject_defined

typedef CORBA_Object CORBA_IRObject;
#define CORBA_IRObject__free CORBA_Object__free
#endif /* !_CORBA_IRObject_defined */

extern CORBA_unsigned_long CORBA_IRObject__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_IRObject_struct;
#define TC_CORBA_IRObject (&TC_CORBA_IRObject_struct)
extern CORBA_DefinitionKind CORBA_IRObject__get_def_kind(CORBA_IRObject _obj, CORBA_Environment *ev);

extern void CORBA_IRObject_destroy(CORBA_IRObject _obj, CORBA_Environment *ev);

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_IRObject__epv_defined
#define _POA_CORBA_IRObject__epv_defined

typedef struct {
  void *_private;
  CORBA_DefinitionKind (*_get_def_kind)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*destroy)(PortableServer_Servant servant, CORBA_Environment *ev);
} POA_CORBA_IRObject__epv;
#endif /* !_POA_CORBA_IRObject__epv_defined */

#ifndef _POA_CORBA_IRObject__vepv_defined
#define _POA_CORBA_IRObject__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
} POA_CORBA_IRObject__vepv;
#endif /* !_POA_CORBA_IRObject__vepv_defined */

#ifndef _POA_CORBA_IRObject_defined
#define _POA_CORBA_IRObject_defined

typedef struct {
  void * _private;
  POA_CORBA_IRObject__vepv* vepv;
} POA_CORBA_IRObject;
#endif /* !_POA_CORBA_IRObject_defined */

extern void POA_CORBA_IRObject__init(POA_CORBA_IRObject *servant, CORBA_Environment *ev);
extern void POA_CORBA_IRObject__fini(POA_CORBA_IRObject *servant, CORBA_Environment *ev);
/* End interface CORBA_IRObject */

#ifndef _CORBA_VersionSpec_defined
#define _CORBA_VersionSpec_defined

typedef CORBA_char * CORBA_VersionSpec;
#endif /* !_CORBA_VersionSpec_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_VersionSpec_struct;
#define TC_CORBA_VersionSpec (&TC_CORBA_VersionSpec_struct)
extern CORBA_VersionSpec* CORBA_VersionSpec__alloc(void);
#define CORBA_VersionSpec__free CORBA_string__free

/* Begin forward declaration CORBA_Contained */

  /* client-side data structures and methods */
#ifndef _CORBA_Contained_defined
#define _CORBA_Contained_defined

typedef CORBA_Object CORBA_Contained;
#define CORBA_Contained__free CORBA_Object__free
#endif /* !_CORBA_Contained_defined */

/* End forward declaration CORBA_Contained */


/* Begin forward declaration CORBA_Repository */

  /* client-side data structures and methods */
#ifndef _CORBA_Repository_defined
#define _CORBA_Repository_defined

typedef CORBA_Object CORBA_Repository;
#define CORBA_Repository__free CORBA_Object__free
#endif /* !_CORBA_Repository_defined */

/* End forward declaration CORBA_Repository */


/* Begin forward declaration CORBA_Container */

  /* client-side data structures and methods */
#ifndef _CORBA_Container_defined
#define _CORBA_Container_defined

typedef CORBA_Object CORBA_Container;
#define CORBA_Container__free CORBA_Object__free
#endif /* !_CORBA_Container_defined */

/* End forward declaration CORBA_Container */


/* Begin interface CORBA_Contained */

  /* client-side data structures and methods */
#ifndef _CORBA_Contained_defined
#define _CORBA_Contained_defined

typedef CORBA_Object CORBA_Contained;
#define CORBA_Contained__free CORBA_Object__free
#endif /* !_CORBA_Contained_defined */

extern CORBA_unsigned_long CORBA_Contained__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_Contained_struct;
#define TC_CORBA_Contained (&TC_CORBA_Contained_struct)
extern CORBA_RepositoryId CORBA_Contained__get_id(CORBA_Contained _obj, CORBA_Environment *ev);
extern void CORBA_Contained__set_id(CORBA_Contained _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);

extern CORBA_Identifier CORBA_Contained__get_name(CORBA_Contained _obj, CORBA_Environment *ev);
extern void CORBA_Contained__set_name(CORBA_Contained _obj, const CORBA_Identifier value, CORBA_Environment *ev);

extern CORBA_VersionSpec CORBA_Contained__get_version(CORBA_Contained _obj, CORBA_Environment *ev);
extern void CORBA_Contained__set_version(CORBA_Contained _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);

extern CORBA_Container CORBA_Contained__get_defined_in(CORBA_Contained _obj, CORBA_Environment *ev);

extern CORBA_ScopedName CORBA_Contained__get_absolute_name(CORBA_Contained _obj, CORBA_Environment *ev);

extern CORBA_Repository CORBA_Contained__get_containing_repository(CORBA_Contained _obj, CORBA_Environment *ev);

#ifndef _CORBA_Contained_Description_defined
#define _CORBA_Contained_Description_defined

typedef struct CORBA_Contained_Description {
  CORBA_DefinitionKind kind;

  CORBA_any value;

} CORBA_Contained_Description;
#endif /* !_CORBA_Contained_Description_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_Contained_Description_struct;
#define TC_CORBA_Contained_Description (&TC_CORBA_Contained_Description_struct)
extern CORBA_Contained_Description* CORBA_Contained_Description__alloc(void);
extern gpointer CORBA_Contained_Description__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

extern CORBA_Contained_Description* CORBA_Contained_describe(CORBA_Contained _obj, CORBA_Environment *ev);

extern void CORBA_Contained_move(CORBA_Contained _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_Contained */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_Contained__get_def_kind(CORBA_Contained _obj, CORBA_Environment *ev);
extern void CORBA_Contained_destroy(CORBA_Contained _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_Contained */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_Contained__epv_defined
#define _POA_CORBA_Contained__epv_defined

typedef struct {
  void *_private;
  CORBA_RepositoryId (*_get_id)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_id)(PortableServer_Servant servant, const CORBA_RepositoryId value, CORBA_Environment *ev);
  CORBA_Identifier (*_get_name)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_name)(PortableServer_Servant servant, const CORBA_Identifier value, CORBA_Environment *ev);
  CORBA_VersionSpec (*_get_version)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_version)(PortableServer_Servant servant, const CORBA_VersionSpec value, CORBA_Environment *ev);
  CORBA_Container (*_get_defined_in)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_ScopedName (*_get_absolute_name)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_Repository (*_get_containing_repository)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_Contained_Description* (*describe)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*move)(PortableServer_Servant servant, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
} POA_CORBA_Contained__epv;
#endif /* !_POA_CORBA_Contained__epv_defined */

#ifndef _POA_CORBA_Contained__vepv_defined
#define _POA_CORBA_Contained__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
} POA_CORBA_Contained__vepv;
#endif /* !_POA_CORBA_Contained__vepv_defined */

#ifndef _POA_CORBA_Contained_defined
#define _POA_CORBA_Contained_defined

typedef struct {
  void * _private;
  POA_CORBA_Contained__vepv* vepv;
} POA_CORBA_Contained;
#endif /* !_POA_CORBA_Contained_defined */

extern void POA_CORBA_Contained__init(POA_CORBA_Contained *servant, CORBA_Environment *ev);
extern void POA_CORBA_Contained__fini(POA_CORBA_Contained *servant, CORBA_Environment *ev);
/* End interface CORBA_Contained */

/* Begin forward declaration CORBA_ModuleDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ModuleDef_defined
#define _CORBA_ModuleDef_defined

typedef CORBA_Object CORBA_ModuleDef;
#define CORBA_ModuleDef__free CORBA_Object__free
#endif /* !_CORBA_ModuleDef_defined */

/* End forward declaration CORBA_ModuleDef */


/* Begin forward declaration CORBA_ConstantDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ConstantDef_defined
#define _CORBA_ConstantDef_defined

typedef CORBA_Object CORBA_ConstantDef;
#define CORBA_ConstantDef__free CORBA_Object__free
#endif /* !_CORBA_ConstantDef_defined */

/* End forward declaration CORBA_ConstantDef */


/* Begin forward declaration CORBA_IDLType */

  /* client-side data structures and methods */
#ifndef _CORBA_IDLType_defined
#define _CORBA_IDLType_defined

typedef CORBA_Object CORBA_IDLType;
#define CORBA_IDLType__free CORBA_Object__free
#endif /* !_CORBA_IDLType_defined */

/* End forward declaration CORBA_IDLType */


/* Begin forward declaration CORBA_StructDef */

  /* client-side data structures and methods */
#ifndef _CORBA_StructDef_defined
#define _CORBA_StructDef_defined

typedef CORBA_Object CORBA_StructDef;
#define CORBA_StructDef__free CORBA_Object__free
#endif /* !_CORBA_StructDef_defined */

/* End forward declaration CORBA_StructDef */


/* Begin forward declaration CORBA_UnionDef */

  /* client-side data structures and methods */
#ifndef _CORBA_UnionDef_defined
#define _CORBA_UnionDef_defined

typedef CORBA_Object CORBA_UnionDef;
#define CORBA_UnionDef__free CORBA_Object__free
#endif /* !_CORBA_UnionDef_defined */

/* End forward declaration CORBA_UnionDef */


/* Begin forward declaration CORBA_EnumDef */

  /* client-side data structures and methods */
#ifndef _CORBA_EnumDef_defined
#define _CORBA_EnumDef_defined

typedef CORBA_Object CORBA_EnumDef;
#define CORBA_EnumDef__free CORBA_Object__free
#endif /* !_CORBA_EnumDef_defined */

/* End forward declaration CORBA_EnumDef */


/* Begin forward declaration CORBA_AliasDef */

  /* client-side data structures and methods */
#ifndef _CORBA_AliasDef_defined
#define _CORBA_AliasDef_defined

typedef CORBA_Object CORBA_AliasDef;
#define CORBA_AliasDef__free CORBA_Object__free
#endif /* !_CORBA_AliasDef_defined */

/* End forward declaration CORBA_AliasDef */


/* Begin forward declaration CORBA_InterfaceDef */

  /* client-side data structures and methods */
#ifndef _CORBA_InterfaceDef_defined
#define _CORBA_InterfaceDef_defined

typedef CORBA_Object CORBA_InterfaceDef;
#define CORBA_InterfaceDef__free CORBA_Object__free
#endif /* !_CORBA_InterfaceDef_defined */

/* End forward declaration CORBA_InterfaceDef */


/* Begin forward declaration CORBA_ExceptionDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ExceptionDef_defined
#define _CORBA_ExceptionDef_defined

typedef CORBA_Object CORBA_ExceptionDef;
#define CORBA_ExceptionDef__free CORBA_Object__free
#endif /* !_CORBA_ExceptionDef_defined */

/* End forward declaration CORBA_ExceptionDef */


#ifndef _CORBA_InterfaceDefSeq_defined
#define _CORBA_InterfaceDefSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_InterfaceDef* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_InterfaceDefSeq;
#endif /* !_CORBA_InterfaceDefSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_InterfaceDefSeq_struct;
#define TC_CORBA_InterfaceDefSeq (&TC_CORBA_InterfaceDefSeq_struct)
extern CORBA_InterfaceDef* CORBA_sequence_CORBA_InterfaceDef_allocbuf(CORBA_unsigned_long len);
extern CORBA_InterfaceDefSeq* CORBA_InterfaceDefSeq__alloc(void);
extern gpointer CORBA_InterfaceDefSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_ContainedSeq_defined
#define _CORBA_ContainedSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_Contained* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_ContainedSeq;
#endif /* !_CORBA_ContainedSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ContainedSeq_struct;
#define TC_CORBA_ContainedSeq (&TC_CORBA_ContainedSeq_struct)
extern CORBA_Contained* CORBA_sequence_CORBA_Contained_allocbuf(CORBA_unsigned_long len);
extern CORBA_ContainedSeq* CORBA_ContainedSeq__alloc(void);
extern gpointer CORBA_ContainedSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_StructMember_defined
#define _CORBA_StructMember_defined

typedef struct CORBA_StructMember {
  CORBA_Identifier name;

  CORBA_TypeCode type;

  CORBA_IDLType type_def;

} CORBA_StructMember;
#endif /* !_CORBA_StructMember_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_StructMember_struct;
#define TC_CORBA_StructMember (&TC_CORBA_StructMember_struct)
extern CORBA_StructMember* CORBA_StructMember__alloc(void);
extern gpointer CORBA_StructMember__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_StructMemberSeq_defined
#define _CORBA_StructMemberSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_StructMember* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_StructMemberSeq;
#endif /* !_CORBA_StructMemberSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_StructMemberSeq_struct;
#define TC_CORBA_StructMemberSeq (&TC_CORBA_StructMemberSeq_struct)
extern CORBA_StructMember* CORBA_sequence_CORBA_StructMember_allocbuf(CORBA_unsigned_long len);
extern CORBA_StructMemberSeq* CORBA_StructMemberSeq__alloc(void);
extern gpointer CORBA_StructMemberSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_UnionMember_defined
#define _CORBA_UnionMember_defined

typedef struct CORBA_UnionMember {
  CORBA_Identifier name;

  CORBA_any label;

  CORBA_TypeCode type;

  CORBA_IDLType type_def;

} CORBA_UnionMember;
#endif /* !_CORBA_UnionMember_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_UnionMember_struct;
#define TC_CORBA_UnionMember (&TC_CORBA_UnionMember_struct)
extern CORBA_UnionMember* CORBA_UnionMember__alloc(void);
extern gpointer CORBA_UnionMember__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_UnionMemberSeq_defined
#define _CORBA_UnionMemberSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_UnionMember* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_UnionMemberSeq;
#endif /* !_CORBA_UnionMemberSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_UnionMemberSeq_struct;
#define TC_CORBA_UnionMemberSeq (&TC_CORBA_UnionMemberSeq_struct)
extern CORBA_UnionMember* CORBA_sequence_CORBA_UnionMember_allocbuf(CORBA_unsigned_long len);
extern CORBA_UnionMemberSeq* CORBA_UnionMemberSeq__alloc(void);
extern gpointer CORBA_UnionMemberSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_EnumMemberSeq_defined
#define _CORBA_EnumMemberSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_Identifier* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_EnumMemberSeq;
#endif /* !_CORBA_EnumMemberSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_EnumMemberSeq_struct;
#define TC_CORBA_EnumMemberSeq (&TC_CORBA_EnumMemberSeq_struct)
extern CORBA_Identifier* CORBA_sequence_CORBA_Identifier_allocbuf(CORBA_unsigned_long len);
extern CORBA_EnumMemberSeq* CORBA_EnumMemberSeq__alloc(void);
extern gpointer CORBA_EnumMemberSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
/* Begin interface CORBA_Container */

  /* client-side data structures and methods */
#ifndef _CORBA_Container_defined
#define _CORBA_Container_defined

typedef CORBA_Object CORBA_Container;
#define CORBA_Container__free CORBA_Object__free
#endif /* !_CORBA_Container_defined */

extern CORBA_unsigned_long CORBA_Container__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_Container_struct;
#define TC_CORBA_Container (&TC_CORBA_Container_struct)
extern CORBA_Contained CORBA_Container_lookup(CORBA_Container _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);

extern CORBA_ContainedSeq* CORBA_Container_contents(CORBA_Container _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);

extern CORBA_ContainedSeq* CORBA_Container_lookup_name(CORBA_Container _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);

#ifndef _CORBA_Container_Description_defined
#define _CORBA_Container_Description_defined

typedef struct CORBA_Container_Description {
  CORBA_Contained contained_object;

  CORBA_DefinitionKind kind;

  CORBA_any value;

} CORBA_Container_Description;
#endif /* !_CORBA_Container_Description_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_Container_Description_struct;
#define TC_CORBA_Container_Description (&TC_CORBA_Container_Description_struct)
extern CORBA_Container_Description* CORBA_Container_Description__alloc(void);
extern gpointer CORBA_Container_Description__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_Container_DescriptionSeq_defined
#define _CORBA_Container_DescriptionSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_Container_Description* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_Container_DescriptionSeq;
#endif /* !_CORBA_Container_DescriptionSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_Container_DescriptionSeq_struct;
#define TC_CORBA_Container_DescriptionSeq (&TC_CORBA_Container_DescriptionSeq_struct)
extern CORBA_Container_Description* CORBA_sequence_CORBA_Container_Description_allocbuf(CORBA_unsigned_long len);
extern CORBA_Container_DescriptionSeq* CORBA_Container_DescriptionSeq__alloc(void);
extern gpointer CORBA_Container_DescriptionSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
extern CORBA_Container_DescriptionSeq* CORBA_Container_describe_contents(CORBA_Container _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);

extern CORBA_ModuleDef CORBA_Container_create_module(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);

extern CORBA_ConstantDef CORBA_Container_create_constant(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);

extern CORBA_StructDef CORBA_Container_create_struct(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);

extern CORBA_UnionDef CORBA_Container_create_union(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);

extern CORBA_EnumDef CORBA_Container_create_enum(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);

extern CORBA_AliasDef CORBA_Container_create_alias(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);

extern CORBA_InterfaceDef CORBA_Container_create_interface(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);

extern CORBA_ExceptionDef CORBA_Container_create_exception(CORBA_Container _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_Container */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_Container__get_def_kind(CORBA_Container _obj, CORBA_Environment *ev);
extern void CORBA_Container_destroy(CORBA_Container _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_Container */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_Container__epv_defined
#define _POA_CORBA_Container__epv_defined

typedef struct {
  void *_private;
  CORBA_Contained (*lookup)(PortableServer_Servant servant, const CORBA_ScopedName search_name, CORBA_Environment *ev);
  CORBA_ContainedSeq* (*contents)(PortableServer_Servant servant, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
  CORBA_ContainedSeq* (*lookup_name)(PortableServer_Servant servant, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
  CORBA_Container_DescriptionSeq* (*describe_contents)(PortableServer_Servant servant, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
  CORBA_ModuleDef (*create_module)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
  CORBA_ConstantDef (*create_constant)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
  CORBA_StructDef (*create_struct)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
  CORBA_UnionDef (*create_union)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
  CORBA_EnumDef (*create_enum)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
  CORBA_AliasDef (*create_alias)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
  CORBA_InterfaceDef (*create_interface)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
  CORBA_ExceptionDef (*create_exception)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
} POA_CORBA_Container__epv;
#endif /* !_POA_CORBA_Container__epv_defined */

#ifndef _POA_CORBA_Container__vepv_defined
#define _POA_CORBA_Container__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
} POA_CORBA_Container__vepv;
#endif /* !_POA_CORBA_Container__vepv_defined */

#ifndef _POA_CORBA_Container_defined
#define _POA_CORBA_Container_defined

typedef struct {
  void * _private;
  POA_CORBA_Container__vepv* vepv;
} POA_CORBA_Container;
#endif /* !_POA_CORBA_Container_defined */

extern void POA_CORBA_Container__init(POA_CORBA_Container *servant, CORBA_Environment *ev);
extern void POA_CORBA_Container__fini(POA_CORBA_Container *servant, CORBA_Environment *ev);
/* End interface CORBA_Container */

/* Begin interface CORBA_IDLType */

  /* client-side data structures and methods */
#ifndef _CORBA_IDLType_defined
#define _CORBA_IDLType_defined

typedef CORBA_Object CORBA_IDLType;
#define CORBA_IDLType__free CORBA_Object__free
#endif /* !_CORBA_IDLType_defined */

extern CORBA_unsigned_long CORBA_IDLType__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_IDLType_struct;
#define TC_CORBA_IDLType (&TC_CORBA_IDLType_struct)
extern CORBA_TypeCode CORBA_IDLType__get_type(CORBA_IDLType _obj, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_IDLType */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_IDLType__get_def_kind(CORBA_IDLType _obj, CORBA_Environment *ev);
extern void CORBA_IDLType_destroy(CORBA_IDLType _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_IDLType */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_IDLType__epv_defined
#define _POA_CORBA_IDLType__epv_defined

typedef struct {
  void *_private;
  CORBA_TypeCode (*_get_type)(PortableServer_Servant servant, CORBA_Environment *ev);
} POA_CORBA_IDLType__epv;
#endif /* !_POA_CORBA_IDLType__epv_defined */

#ifndef _POA_CORBA_IDLType__vepv_defined
#define _POA_CORBA_IDLType__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
} POA_CORBA_IDLType__vepv;
#endif /* !_POA_CORBA_IDLType__vepv_defined */

#ifndef _POA_CORBA_IDLType_defined
#define _POA_CORBA_IDLType_defined

typedef struct {
  void * _private;
  POA_CORBA_IDLType__vepv* vepv;
} POA_CORBA_IDLType;
#endif /* !_POA_CORBA_IDLType_defined */

extern void POA_CORBA_IDLType__init(POA_CORBA_IDLType *servant, CORBA_Environment *ev);
extern void POA_CORBA_IDLType__fini(POA_CORBA_IDLType *servant, CORBA_Environment *ev);
/* End interface CORBA_IDLType */

/* Begin forward declaration CORBA_PrimitiveDef */

  /* client-side data structures and methods */
#ifndef _CORBA_PrimitiveDef_defined
#define _CORBA_PrimitiveDef_defined

typedef CORBA_Object CORBA_PrimitiveDef;
#define CORBA_PrimitiveDef__free CORBA_Object__free
#endif /* !_CORBA_PrimitiveDef_defined */

/* End forward declaration CORBA_PrimitiveDef */


/* Begin forward declaration CORBA_StringDef */

  /* client-side data structures and methods */
#ifndef _CORBA_StringDef_defined
#define _CORBA_StringDef_defined

typedef CORBA_Object CORBA_StringDef;
#define CORBA_StringDef__free CORBA_Object__free
#endif /* !_CORBA_StringDef_defined */

/* End forward declaration CORBA_StringDef */


/* Begin forward declaration CORBA_WstringDef */

  /* client-side data structures and methods */
#ifndef _CORBA_WstringDef_defined
#define _CORBA_WstringDef_defined

typedef CORBA_Object CORBA_WstringDef;
#define CORBA_WstringDef__free CORBA_Object__free
#endif /* !_CORBA_WstringDef_defined */

/* End forward declaration CORBA_WstringDef */


/* Begin forward declaration CORBA_SequenceDef */

  /* client-side data structures and methods */
#ifndef _CORBA_SequenceDef_defined
#define _CORBA_SequenceDef_defined

typedef CORBA_Object CORBA_SequenceDef;
#define CORBA_SequenceDef__free CORBA_Object__free
#endif /* !_CORBA_SequenceDef_defined */

/* End forward declaration CORBA_SequenceDef */


/* Begin forward declaration CORBA_ArrayDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ArrayDef_defined
#define _CORBA_ArrayDef_defined

typedef CORBA_Object CORBA_ArrayDef;
#define CORBA_ArrayDef__free CORBA_Object__free
#endif /* !_CORBA_ArrayDef_defined */

/* End forward declaration CORBA_ArrayDef */


/* Begin forward declaration CORBA_FixedDef */

  /* client-side data structures and methods */
#ifndef _CORBA_FixedDef_defined
#define _CORBA_FixedDef_defined

typedef CORBA_Object CORBA_FixedDef;
#define CORBA_FixedDef__free CORBA_Object__free
#endif /* !_CORBA_FixedDef_defined */

/* End forward declaration CORBA_FixedDef */


#ifndef _CORBA_PrimitiveKind_defined
#define _CORBA_PrimitiveKind_defined

typedef enum {
  CORBA_pk_null,
  CORBA_pk_void,
  CORBA_pk_short,
  CORBA_pk_long,
  CORBA_pk_ushort,
  CORBA_pk_ulong,
  CORBA_pk_float,
  CORBA_pk_double,
  CORBA_pk_boolean,
  CORBA_pk_char,
  CORBA_pk_octet,
  CORBA_pk_any,
  CORBA_pk_TypeCode,
  CORBA_pk_Principal,
  CORBA_pk_string,
  CORBA_pk_objref,
  CORBA_pk_longlong,
  CORBA_pk_ulonglong,
  CORBA_pk_longdouble,
  CORBA_pk_wchar,
  CORBA_pk_wstring
} CORBA_PrimitiveKind;
#endif /* !_CORBA_PrimitiveKind_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_PrimitiveKind_struct;
#define TC_CORBA_PrimitiveKind (&TC_CORBA_PrimitiveKind_struct)

/* Begin interface CORBA_Repository */

  /* client-side data structures and methods */
#ifndef _CORBA_Repository_defined
#define _CORBA_Repository_defined

typedef CORBA_Object CORBA_Repository;
#define CORBA_Repository__free CORBA_Object__free
#endif /* !_CORBA_Repository_defined */

extern CORBA_unsigned_long CORBA_Repository__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_Repository_struct;
#define TC_CORBA_Repository (&TC_CORBA_Repository_struct)
extern CORBA_Contained CORBA_Repository_lookup_id(CORBA_Repository _obj, const CORBA_RepositoryId search_id, CORBA_Environment *ev);

extern CORBA_PrimitiveDef CORBA_Repository_get_primitive(CORBA_Repository _obj, const CORBA_PrimitiveKind kind, CORBA_Environment *ev);

extern CORBA_StringDef CORBA_Repository_create_string(CORBA_Repository _obj, const CORBA_unsigned_long bound, CORBA_Environment *ev);

extern CORBA_WstringDef CORBA_Repository_create_wstring(CORBA_Repository _obj, const CORBA_unsigned_long bound, CORBA_Environment *ev);

extern CORBA_SequenceDef CORBA_Repository_create_sequence(CORBA_Repository _obj, const CORBA_unsigned_long bound, const CORBA_IDLType element_type, CORBA_Environment *ev);

extern CORBA_ArrayDef CORBA_Repository_create_array(CORBA_Repository _obj, const CORBA_unsigned_long length, const CORBA_IDLType element_type, CORBA_Environment *ev);

extern CORBA_FixedDef CORBA_Repository_create_fixed(CORBA_Repository _obj, const CORBA_unsigned_short digits, const CORBA_short scale, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_Repository */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_Repository__get_def_kind(CORBA_Repository _obj, CORBA_Environment *ev);
extern void CORBA_Repository_destroy(CORBA_Repository _obj, CORBA_Environment *ev);
/* From interface CORBA_Container */
extern CORBA_Contained CORBA_Repository_lookup(CORBA_Repository _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_Repository_contents(CORBA_Repository _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_Repository_lookup_name(CORBA_Repository _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_Container_DescriptionSeq* CORBA_Repository_describe_contents(CORBA_Repository _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
extern CORBA_ModuleDef CORBA_Repository_create_module(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
extern CORBA_ConstantDef CORBA_Repository_create_constant(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
extern CORBA_StructDef CORBA_Repository_create_struct(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
extern CORBA_UnionDef CORBA_Repository_create_union(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
extern CORBA_EnumDef CORBA_Repository_create_enum(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
extern CORBA_AliasDef CORBA_Repository_create_alias(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
extern CORBA_InterfaceDef CORBA_Repository_create_interface(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
extern CORBA_ExceptionDef CORBA_Repository_create_exception(CORBA_Repository _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
/* End inherited operations for CORBA_Repository */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_Repository__epv_defined
#define _POA_CORBA_Repository__epv_defined

typedef struct {
  void *_private;
  CORBA_Contained (*lookup_id)(PortableServer_Servant servant, const CORBA_RepositoryId search_id, CORBA_Environment *ev);
  CORBA_PrimitiveDef (*get_primitive)(PortableServer_Servant servant, const CORBA_PrimitiveKind kind, CORBA_Environment *ev);
  CORBA_StringDef (*create_string)(PortableServer_Servant servant, const CORBA_unsigned_long bound, CORBA_Environment *ev);
  CORBA_WstringDef (*create_wstring)(PortableServer_Servant servant, const CORBA_unsigned_long bound, CORBA_Environment *ev);
  CORBA_SequenceDef (*create_sequence)(PortableServer_Servant servant, const CORBA_unsigned_long bound, const CORBA_IDLType element_type, CORBA_Environment *ev);
  CORBA_ArrayDef (*create_array)(PortableServer_Servant servant, const CORBA_unsigned_long length, const CORBA_IDLType element_type, CORBA_Environment *ev);
  CORBA_FixedDef (*create_fixed)(PortableServer_Servant servant, const CORBA_unsigned_short digits, const CORBA_short scale, CORBA_Environment *ev);
} POA_CORBA_Repository__epv;
#endif /* !_POA_CORBA_Repository__epv_defined */

#ifndef _POA_CORBA_Repository__vepv_defined
#define _POA_CORBA_Repository__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
  POA_CORBA_Repository__epv *CORBA_Repository_epv;
} POA_CORBA_Repository__vepv;
#endif /* !_POA_CORBA_Repository__vepv_defined */

#ifndef _POA_CORBA_Repository_defined
#define _POA_CORBA_Repository_defined

typedef struct {
  void * _private;
  POA_CORBA_Repository__vepv* vepv;
} POA_CORBA_Repository;
#endif /* !_POA_CORBA_Repository_defined */

extern void POA_CORBA_Repository__init(POA_CORBA_Repository *servant, CORBA_Environment *ev);
extern void POA_CORBA_Repository__fini(POA_CORBA_Repository *servant, CORBA_Environment *ev);
/* End interface CORBA_Repository */

/* Begin interface CORBA_ModuleDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ModuleDef_defined
#define _CORBA_ModuleDef_defined

typedef CORBA_Object CORBA_ModuleDef;
#define CORBA_ModuleDef__free CORBA_Object__free
#endif /* !_CORBA_ModuleDef_defined */

extern CORBA_unsigned_long CORBA_ModuleDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_ModuleDef_struct;
#define TC_CORBA_ModuleDef (&TC_CORBA_ModuleDef_struct)
/* Begin inherited operations for CORBA_ModuleDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_ModuleDef__get_def_kind(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern void CORBA_ModuleDef_destroy(CORBA_ModuleDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Container */
extern CORBA_Contained CORBA_ModuleDef_lookup(CORBA_ModuleDef _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_ModuleDef_contents(CORBA_ModuleDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_ModuleDef_lookup_name(CORBA_ModuleDef _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_Container_DescriptionSeq* CORBA_ModuleDef_describe_contents(CORBA_ModuleDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
extern CORBA_ModuleDef CORBA_ModuleDef_create_module(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
extern CORBA_ConstantDef CORBA_ModuleDef_create_constant(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
extern CORBA_StructDef CORBA_ModuleDef_create_struct(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
extern CORBA_UnionDef CORBA_ModuleDef_create_union(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
extern CORBA_EnumDef CORBA_ModuleDef_create_enum(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
extern CORBA_AliasDef CORBA_ModuleDef_create_alias(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
extern CORBA_InterfaceDef CORBA_ModuleDef_create_interface(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
extern CORBA_ExceptionDef CORBA_ModuleDef_create_exception(CORBA_ModuleDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_ModuleDef__get_id(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern void CORBA_ModuleDef__set_id(CORBA_ModuleDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_ModuleDef__get_name(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern void CORBA_ModuleDef__set_name(CORBA_ModuleDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_ModuleDef__get_version(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern void CORBA_ModuleDef__set_version(CORBA_ModuleDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_ModuleDef__get_defined_in(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_ModuleDef__get_absolute_name(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_ModuleDef__get_containing_repository(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_ModuleDef_describe(CORBA_ModuleDef _obj, CORBA_Environment *ev);
extern void CORBA_ModuleDef_move(CORBA_ModuleDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* End inherited operations for CORBA_ModuleDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_ModuleDef__epv_defined
#define _POA_CORBA_ModuleDef__epv_defined

typedef struct {
  void *_private;
} POA_CORBA_ModuleDef__epv;
#endif /* !_POA_CORBA_ModuleDef__epv_defined */

#ifndef _POA_CORBA_ModuleDef__vepv_defined
#define _POA_CORBA_ModuleDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_ModuleDef__epv *CORBA_ModuleDef_epv;
} POA_CORBA_ModuleDef__vepv;
#endif /* !_POA_CORBA_ModuleDef__vepv_defined */

#ifndef _POA_CORBA_ModuleDef_defined
#define _POA_CORBA_ModuleDef_defined

typedef struct {
  void * _private;
  POA_CORBA_ModuleDef__vepv* vepv;
} POA_CORBA_ModuleDef;
#endif /* !_POA_CORBA_ModuleDef_defined */

extern void POA_CORBA_ModuleDef__init(POA_CORBA_ModuleDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_ModuleDef__fini(POA_CORBA_ModuleDef *servant, CORBA_Environment *ev);
/* End interface CORBA_ModuleDef */

#ifndef _CORBA_ModuleDescription_defined
#define _CORBA_ModuleDescription_defined

typedef struct CORBA_ModuleDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

} CORBA_ModuleDescription;
#endif /* !_CORBA_ModuleDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ModuleDescription_struct;
#define TC_CORBA_ModuleDescription (&TC_CORBA_ModuleDescription_struct)
extern CORBA_ModuleDescription* CORBA_ModuleDescription__alloc(void);
extern gpointer CORBA_ModuleDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

/* Begin interface CORBA_ConstantDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ConstantDef_defined
#define _CORBA_ConstantDef_defined

typedef CORBA_Object CORBA_ConstantDef;
#define CORBA_ConstantDef__free CORBA_Object__free
#endif /* !_CORBA_ConstantDef_defined */

extern CORBA_unsigned_long CORBA_ConstantDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_ConstantDef_struct;
#define TC_CORBA_ConstantDef (&TC_CORBA_ConstantDef_struct)
extern CORBA_TypeCode CORBA_ConstantDef__get_type(CORBA_ConstantDef _obj, CORBA_Environment *ev);

extern CORBA_IDLType CORBA_ConstantDef__get_type_def(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef__set_type_def(CORBA_ConstantDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

extern CORBA_any* CORBA_ConstantDef__get_value(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef__set_value(CORBA_ConstantDef _obj, const CORBA_any* value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_ConstantDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_ConstantDef__get_def_kind(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef_destroy(CORBA_ConstantDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_ConstantDef__get_id(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef__set_id(CORBA_ConstantDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_ConstantDef__get_name(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef__set_name(CORBA_ConstantDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_ConstantDef__get_version(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef__set_version(CORBA_ConstantDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_ConstantDef__get_defined_in(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_ConstantDef__get_absolute_name(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_ConstantDef__get_containing_repository(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_ConstantDef_describe(CORBA_ConstantDef _obj, CORBA_Environment *ev);
extern void CORBA_ConstantDef_move(CORBA_ConstantDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* End inherited operations for CORBA_ConstantDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_ConstantDef__epv_defined
#define _POA_CORBA_ConstantDef__epv_defined

typedef struct {
  void *_private;
  CORBA_TypeCode (*_get_type)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_IDLType (*_get_type_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_type_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
  CORBA_any* (*_get_value)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_value)(PortableServer_Servant servant, const CORBA_any* value, CORBA_Environment *ev);
} POA_CORBA_ConstantDef__epv;
#endif /* !_POA_CORBA_ConstantDef__epv_defined */

#ifndef _POA_CORBA_ConstantDef__vepv_defined
#define _POA_CORBA_ConstantDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_ConstantDef__epv *CORBA_ConstantDef_epv;
} POA_CORBA_ConstantDef__vepv;
#endif /* !_POA_CORBA_ConstantDef__vepv_defined */

#ifndef _POA_CORBA_ConstantDef_defined
#define _POA_CORBA_ConstantDef_defined

typedef struct {
  void * _private;
  POA_CORBA_ConstantDef__vepv* vepv;
} POA_CORBA_ConstantDef;
#endif /* !_POA_CORBA_ConstantDef_defined */

extern void POA_CORBA_ConstantDef__init(POA_CORBA_ConstantDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_ConstantDef__fini(POA_CORBA_ConstantDef *servant, CORBA_Environment *ev);
/* End interface CORBA_ConstantDef */

#ifndef _CORBA_ConstantDescription_defined
#define _CORBA_ConstantDescription_defined

typedef struct CORBA_ConstantDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_TypeCode type;

  CORBA_any value;

} CORBA_ConstantDescription;
#endif /* !_CORBA_ConstantDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ConstantDescription_struct;
#define TC_CORBA_ConstantDescription (&TC_CORBA_ConstantDescription_struct)
extern CORBA_ConstantDescription* CORBA_ConstantDescription__alloc(void);
extern gpointer CORBA_ConstantDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

/* Begin interface CORBA_TypedefDef */

  /* client-side data structures and methods */
#ifndef _CORBA_TypedefDef_defined
#define _CORBA_TypedefDef_defined

typedef CORBA_Object CORBA_TypedefDef;
#define CORBA_TypedefDef__free CORBA_Object__free
#endif /* !_CORBA_TypedefDef_defined */

extern CORBA_unsigned_long CORBA_TypedefDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_TypedefDef_struct;
#define TC_CORBA_TypedefDef (&TC_CORBA_TypedefDef_struct)
/* Begin inherited operations for CORBA_TypedefDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_TypedefDef__get_def_kind(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern void CORBA_TypedefDef_destroy(CORBA_TypedefDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_TypedefDef__get_id(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern void CORBA_TypedefDef__set_id(CORBA_TypedefDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_TypedefDef__get_name(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern void CORBA_TypedefDef__set_name(CORBA_TypedefDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_TypedefDef__get_version(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern void CORBA_TypedefDef__set_version(CORBA_TypedefDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_TypedefDef__get_defined_in(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_TypedefDef__get_absolute_name(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_TypedefDef__get_containing_repository(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_TypedefDef_describe(CORBA_TypedefDef _obj, CORBA_Environment *ev);
extern void CORBA_TypedefDef_move(CORBA_TypedefDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_TypedefDef__get_type(CORBA_TypedefDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_TypedefDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_TypedefDef__epv_defined
#define _POA_CORBA_TypedefDef__epv_defined

typedef struct {
  void *_private;
} POA_CORBA_TypedefDef__epv;
#endif /* !_POA_CORBA_TypedefDef__epv_defined */

#ifndef _POA_CORBA_TypedefDef__vepv_defined
#define _POA_CORBA_TypedefDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_TypedefDef__epv *CORBA_TypedefDef_epv;
} POA_CORBA_TypedefDef__vepv;
#endif /* !_POA_CORBA_TypedefDef__vepv_defined */

#ifndef _POA_CORBA_TypedefDef_defined
#define _POA_CORBA_TypedefDef_defined

typedef struct {
  void * _private;
  POA_CORBA_TypedefDef__vepv* vepv;
} POA_CORBA_TypedefDef;
#endif /* !_POA_CORBA_TypedefDef_defined */

extern void POA_CORBA_TypedefDef__init(POA_CORBA_TypedefDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_TypedefDef__fini(POA_CORBA_TypedefDef *servant, CORBA_Environment *ev);
/* End interface CORBA_TypedefDef */

#ifndef _CORBA_TypeDescription_defined
#define _CORBA_TypeDescription_defined

typedef struct CORBA_TypeDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_TypeCode type;

} CORBA_TypeDescription;
#endif /* !_CORBA_TypeDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_TypeDescription_struct;
#define TC_CORBA_TypeDescription (&TC_CORBA_TypeDescription_struct)
extern CORBA_TypeDescription* CORBA_TypeDescription__alloc(void);
extern gpointer CORBA_TypeDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

/* Begin interface CORBA_StructDef */

  /* client-side data structures and methods */
#ifndef _CORBA_StructDef_defined
#define _CORBA_StructDef_defined

typedef CORBA_Object CORBA_StructDef;
#define CORBA_StructDef__free CORBA_Object__free
#endif /* !_CORBA_StructDef_defined */

extern CORBA_unsigned_long CORBA_StructDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_StructDef_struct;
#define TC_CORBA_StructDef (&TC_CORBA_StructDef_struct)
extern CORBA_StructMemberSeq* CORBA_StructDef__get_members(CORBA_StructDef _obj, CORBA_Environment *ev);
extern void CORBA_StructDef__set_members(CORBA_StructDef _obj, const CORBA_StructMemberSeq* value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_StructDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_StructDef__get_def_kind(CORBA_StructDef _obj, CORBA_Environment *ev);
extern void CORBA_StructDef_destroy(CORBA_StructDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_StructDef__get_id(CORBA_StructDef _obj, CORBA_Environment *ev);
extern void CORBA_StructDef__set_id(CORBA_StructDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_StructDef__get_name(CORBA_StructDef _obj, CORBA_Environment *ev);
extern void CORBA_StructDef__set_name(CORBA_StructDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_StructDef__get_version(CORBA_StructDef _obj, CORBA_Environment *ev);
extern void CORBA_StructDef__set_version(CORBA_StructDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_StructDef__get_defined_in(CORBA_StructDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_StructDef__get_absolute_name(CORBA_StructDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_StructDef__get_containing_repository(CORBA_StructDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_StructDef_describe(CORBA_StructDef _obj, CORBA_Environment *ev);
extern void CORBA_StructDef_move(CORBA_StructDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_StructDef__get_type(CORBA_StructDef _obj, CORBA_Environment *ev);
/* From interface CORBA_TypedefDef */
/* From interface CORBA_Container */
extern CORBA_Contained CORBA_StructDef_lookup(CORBA_StructDef _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_StructDef_contents(CORBA_StructDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_StructDef_lookup_name(CORBA_StructDef _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_Container_DescriptionSeq* CORBA_StructDef_describe_contents(CORBA_StructDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
extern CORBA_ModuleDef CORBA_StructDef_create_module(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
extern CORBA_ConstantDef CORBA_StructDef_create_constant(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
extern CORBA_StructDef CORBA_StructDef_create_struct(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
extern CORBA_UnionDef CORBA_StructDef_create_union(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
extern CORBA_EnumDef CORBA_StructDef_create_enum(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
extern CORBA_AliasDef CORBA_StructDef_create_alias(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
extern CORBA_InterfaceDef CORBA_StructDef_create_interface(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
extern CORBA_ExceptionDef CORBA_StructDef_create_exception(CORBA_StructDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
/* End inherited operations for CORBA_StructDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_StructDef__epv_defined
#define _POA_CORBA_StructDef__epv_defined

typedef struct {
  void *_private;
  CORBA_StructMemberSeq* (*_get_members)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_members)(PortableServer_Servant servant, const CORBA_StructMemberSeq* value, CORBA_Environment *ev);
} POA_CORBA_StructDef__epv;
#endif /* !_POA_CORBA_StructDef__epv_defined */

#ifndef _POA_CORBA_StructDef__vepv_defined
#define _POA_CORBA_StructDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_TypedefDef__epv *CORBA_TypedefDef_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
  POA_CORBA_StructDef__epv *CORBA_StructDef_epv;
} POA_CORBA_StructDef__vepv;
#endif /* !_POA_CORBA_StructDef__vepv_defined */

#ifndef _POA_CORBA_StructDef_defined
#define _POA_CORBA_StructDef_defined

typedef struct {
  void * _private;
  POA_CORBA_StructDef__vepv* vepv;
} POA_CORBA_StructDef;
#endif /* !_POA_CORBA_StructDef_defined */

extern void POA_CORBA_StructDef__init(POA_CORBA_StructDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_StructDef__fini(POA_CORBA_StructDef *servant, CORBA_Environment *ev);
/* End interface CORBA_StructDef */

/* Begin interface CORBA_UnionDef */

  /* client-side data structures and methods */
#ifndef _CORBA_UnionDef_defined
#define _CORBA_UnionDef_defined

typedef CORBA_Object CORBA_UnionDef;
#define CORBA_UnionDef__free CORBA_Object__free
#endif /* !_CORBA_UnionDef_defined */

extern CORBA_unsigned_long CORBA_UnionDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_UnionDef_struct;
#define TC_CORBA_UnionDef (&TC_CORBA_UnionDef_struct)
extern CORBA_TypeCode CORBA_UnionDef__get_discriminator_type(CORBA_UnionDef _obj, CORBA_Environment *ev);

extern CORBA_IDLType CORBA_UnionDef__get_discriminator_type_def(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef__set_discriminator_type_def(CORBA_UnionDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

extern CORBA_UnionMemberSeq* CORBA_UnionDef__get_members(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef__set_members(CORBA_UnionDef _obj, const CORBA_UnionMemberSeq* value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_UnionDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_UnionDef__get_def_kind(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef_destroy(CORBA_UnionDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_UnionDef__get_id(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef__set_id(CORBA_UnionDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_UnionDef__get_name(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef__set_name(CORBA_UnionDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_UnionDef__get_version(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef__set_version(CORBA_UnionDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_UnionDef__get_defined_in(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_UnionDef__get_absolute_name(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_UnionDef__get_containing_repository(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_UnionDef_describe(CORBA_UnionDef _obj, CORBA_Environment *ev);
extern void CORBA_UnionDef_move(CORBA_UnionDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_UnionDef__get_type(CORBA_UnionDef _obj, CORBA_Environment *ev);
/* From interface CORBA_TypedefDef */
/* From interface CORBA_Container */
extern CORBA_Contained CORBA_UnionDef_lookup(CORBA_UnionDef _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_UnionDef_contents(CORBA_UnionDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_UnionDef_lookup_name(CORBA_UnionDef _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_Container_DescriptionSeq* CORBA_UnionDef_describe_contents(CORBA_UnionDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
extern CORBA_ModuleDef CORBA_UnionDef_create_module(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
extern CORBA_ConstantDef CORBA_UnionDef_create_constant(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
extern CORBA_StructDef CORBA_UnionDef_create_struct(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
extern CORBA_UnionDef CORBA_UnionDef_create_union(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
extern CORBA_EnumDef CORBA_UnionDef_create_enum(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
extern CORBA_AliasDef CORBA_UnionDef_create_alias(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
extern CORBA_InterfaceDef CORBA_UnionDef_create_interface(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
extern CORBA_ExceptionDef CORBA_UnionDef_create_exception(CORBA_UnionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
/* End inherited operations for CORBA_UnionDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_UnionDef__epv_defined
#define _POA_CORBA_UnionDef__epv_defined

typedef struct {
  void *_private;
  CORBA_TypeCode (*_get_discriminator_type)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_IDLType (*_get_discriminator_type_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_discriminator_type_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
  CORBA_UnionMemberSeq* (*_get_members)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_members)(PortableServer_Servant servant, const CORBA_UnionMemberSeq* value, CORBA_Environment *ev);
} POA_CORBA_UnionDef__epv;
#endif /* !_POA_CORBA_UnionDef__epv_defined */

#ifndef _POA_CORBA_UnionDef__vepv_defined
#define _POA_CORBA_UnionDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_TypedefDef__epv *CORBA_TypedefDef_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
  POA_CORBA_UnionDef__epv *CORBA_UnionDef_epv;
} POA_CORBA_UnionDef__vepv;
#endif /* !_POA_CORBA_UnionDef__vepv_defined */

#ifndef _POA_CORBA_UnionDef_defined
#define _POA_CORBA_UnionDef_defined

typedef struct {
  void * _private;
  POA_CORBA_UnionDef__vepv* vepv;
} POA_CORBA_UnionDef;
#endif /* !_POA_CORBA_UnionDef_defined */

extern void POA_CORBA_UnionDef__init(POA_CORBA_UnionDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_UnionDef__fini(POA_CORBA_UnionDef *servant, CORBA_Environment *ev);
/* End interface CORBA_UnionDef */

/* Begin interface CORBA_EnumDef */

  /* client-side data structures and methods */
#ifndef _CORBA_EnumDef_defined
#define _CORBA_EnumDef_defined

typedef CORBA_Object CORBA_EnumDef;
#define CORBA_EnumDef__free CORBA_Object__free
#endif /* !_CORBA_EnumDef_defined */

extern CORBA_unsigned_long CORBA_EnumDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_EnumDef_struct;
#define TC_CORBA_EnumDef (&TC_CORBA_EnumDef_struct)
extern CORBA_EnumMemberSeq* CORBA_EnumDef__get_members(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern void CORBA_EnumDef__set_members(CORBA_EnumDef _obj, const CORBA_EnumMemberSeq* value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_EnumDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_EnumDef__get_def_kind(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern void CORBA_EnumDef_destroy(CORBA_EnumDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_EnumDef__get_id(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern void CORBA_EnumDef__set_id(CORBA_EnumDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_EnumDef__get_name(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern void CORBA_EnumDef__set_name(CORBA_EnumDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_EnumDef__get_version(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern void CORBA_EnumDef__set_version(CORBA_EnumDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_EnumDef__get_defined_in(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_EnumDef__get_absolute_name(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_EnumDef__get_containing_repository(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_EnumDef_describe(CORBA_EnumDef _obj, CORBA_Environment *ev);
extern void CORBA_EnumDef_move(CORBA_EnumDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_EnumDef__get_type(CORBA_EnumDef _obj, CORBA_Environment *ev);
/* From interface CORBA_TypedefDef */
/* End inherited operations for CORBA_EnumDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_EnumDef__epv_defined
#define _POA_CORBA_EnumDef__epv_defined

typedef struct {
  void *_private;
  CORBA_EnumMemberSeq* (*_get_members)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_members)(PortableServer_Servant servant, const CORBA_EnumMemberSeq* value, CORBA_Environment *ev);
} POA_CORBA_EnumDef__epv;
#endif /* !_POA_CORBA_EnumDef__epv_defined */

#ifndef _POA_CORBA_EnumDef__vepv_defined
#define _POA_CORBA_EnumDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_TypedefDef__epv *CORBA_TypedefDef_epv;
  POA_CORBA_EnumDef__epv *CORBA_EnumDef_epv;
} POA_CORBA_EnumDef__vepv;
#endif /* !_POA_CORBA_EnumDef__vepv_defined */

#ifndef _POA_CORBA_EnumDef_defined
#define _POA_CORBA_EnumDef_defined

typedef struct {
  void * _private;
  POA_CORBA_EnumDef__vepv* vepv;
} POA_CORBA_EnumDef;
#endif /* !_POA_CORBA_EnumDef_defined */

extern void POA_CORBA_EnumDef__init(POA_CORBA_EnumDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_EnumDef__fini(POA_CORBA_EnumDef *servant, CORBA_Environment *ev);
/* End interface CORBA_EnumDef */

/* Begin interface CORBA_AliasDef */

  /* client-side data structures and methods */
#ifndef _CORBA_AliasDef_defined
#define _CORBA_AliasDef_defined

typedef CORBA_Object CORBA_AliasDef;
#define CORBA_AliasDef__free CORBA_Object__free
#endif /* !_CORBA_AliasDef_defined */

extern CORBA_unsigned_long CORBA_AliasDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_AliasDef_struct;
#define TC_CORBA_AliasDef (&TC_CORBA_AliasDef_struct)
extern CORBA_IDLType CORBA_AliasDef__get_original_type_def(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern void CORBA_AliasDef__set_original_type_def(CORBA_AliasDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_AliasDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_AliasDef__get_def_kind(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern void CORBA_AliasDef_destroy(CORBA_AliasDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_AliasDef__get_id(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern void CORBA_AliasDef__set_id(CORBA_AliasDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_AliasDef__get_name(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern void CORBA_AliasDef__set_name(CORBA_AliasDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_AliasDef__get_version(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern void CORBA_AliasDef__set_version(CORBA_AliasDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_AliasDef__get_defined_in(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_AliasDef__get_absolute_name(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_AliasDef__get_containing_repository(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_AliasDef_describe(CORBA_AliasDef _obj, CORBA_Environment *ev);
extern void CORBA_AliasDef_move(CORBA_AliasDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_AliasDef__get_type(CORBA_AliasDef _obj, CORBA_Environment *ev);
/* From interface CORBA_TypedefDef */
/* End inherited operations for CORBA_AliasDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_AliasDef__epv_defined
#define _POA_CORBA_AliasDef__epv_defined

typedef struct {
  void *_private;
  CORBA_IDLType (*_get_original_type_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_original_type_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
} POA_CORBA_AliasDef__epv;
#endif /* !_POA_CORBA_AliasDef__epv_defined */

#ifndef _POA_CORBA_AliasDef__vepv_defined
#define _POA_CORBA_AliasDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_TypedefDef__epv *CORBA_TypedefDef_epv;
  POA_CORBA_AliasDef__epv *CORBA_AliasDef_epv;
} POA_CORBA_AliasDef__vepv;
#endif /* !_POA_CORBA_AliasDef__vepv_defined */

#ifndef _POA_CORBA_AliasDef_defined
#define _POA_CORBA_AliasDef_defined

typedef struct {
  void * _private;
  POA_CORBA_AliasDef__vepv* vepv;
} POA_CORBA_AliasDef;
#endif /* !_POA_CORBA_AliasDef_defined */

extern void POA_CORBA_AliasDef__init(POA_CORBA_AliasDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_AliasDef__fini(POA_CORBA_AliasDef *servant, CORBA_Environment *ev);
/* End interface CORBA_AliasDef */

/* Begin interface CORBA_PrimitiveDef */

  /* client-side data structures and methods */
#ifndef _CORBA_PrimitiveDef_defined
#define _CORBA_PrimitiveDef_defined

typedef CORBA_Object CORBA_PrimitiveDef;
#define CORBA_PrimitiveDef__free CORBA_Object__free
#endif /* !_CORBA_PrimitiveDef_defined */

extern CORBA_unsigned_long CORBA_PrimitiveDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_PrimitiveDef_struct;
#define TC_CORBA_PrimitiveDef (&TC_CORBA_PrimitiveDef_struct)
extern CORBA_PrimitiveKind CORBA_PrimitiveDef__get_kind(CORBA_PrimitiveDef _obj, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_PrimitiveDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_PrimitiveDef__get_def_kind(CORBA_PrimitiveDef _obj, CORBA_Environment *ev);
extern void CORBA_PrimitiveDef_destroy(CORBA_PrimitiveDef _obj, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_PrimitiveDef__get_type(CORBA_PrimitiveDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_PrimitiveDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_PrimitiveDef__epv_defined
#define _POA_CORBA_PrimitiveDef__epv_defined

typedef struct {
  void *_private;
  CORBA_PrimitiveKind (*_get_kind)(PortableServer_Servant servant, CORBA_Environment *ev);
} POA_CORBA_PrimitiveDef__epv;
#endif /* !_POA_CORBA_PrimitiveDef__epv_defined */

#ifndef _POA_CORBA_PrimitiveDef__vepv_defined
#define _POA_CORBA_PrimitiveDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_PrimitiveDef__epv *CORBA_PrimitiveDef_epv;
} POA_CORBA_PrimitiveDef__vepv;
#endif /* !_POA_CORBA_PrimitiveDef__vepv_defined */

#ifndef _POA_CORBA_PrimitiveDef_defined
#define _POA_CORBA_PrimitiveDef_defined

typedef struct {
  void * _private;
  POA_CORBA_PrimitiveDef__vepv* vepv;
} POA_CORBA_PrimitiveDef;
#endif /* !_POA_CORBA_PrimitiveDef_defined */

extern void POA_CORBA_PrimitiveDef__init(POA_CORBA_PrimitiveDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_PrimitiveDef__fini(POA_CORBA_PrimitiveDef *servant, CORBA_Environment *ev);
/* End interface CORBA_PrimitiveDef */

/* Begin interface CORBA_StringDef */

  /* client-side data structures and methods */
#ifndef _CORBA_StringDef_defined
#define _CORBA_StringDef_defined

typedef CORBA_Object CORBA_StringDef;
#define CORBA_StringDef__free CORBA_Object__free
#endif /* !_CORBA_StringDef_defined */

extern CORBA_unsigned_long CORBA_StringDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_StringDef_struct;
#define TC_CORBA_StringDef (&TC_CORBA_StringDef_struct)
extern CORBA_unsigned_long CORBA_StringDef__get_bound(CORBA_StringDef _obj, CORBA_Environment *ev);
extern void CORBA_StringDef__set_bound(CORBA_StringDef _obj, const CORBA_unsigned_long value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_StringDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_StringDef__get_def_kind(CORBA_StringDef _obj, CORBA_Environment *ev);
extern void CORBA_StringDef_destroy(CORBA_StringDef _obj, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_StringDef__get_type(CORBA_StringDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_StringDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_StringDef__epv_defined
#define _POA_CORBA_StringDef__epv_defined

typedef struct {
  void *_private;
  CORBA_unsigned_long (*_get_bound)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_bound)(PortableServer_Servant servant, const CORBA_unsigned_long value, CORBA_Environment *ev);
} POA_CORBA_StringDef__epv;
#endif /* !_POA_CORBA_StringDef__epv_defined */

#ifndef _POA_CORBA_StringDef__vepv_defined
#define _POA_CORBA_StringDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_StringDef__epv *CORBA_StringDef_epv;
} POA_CORBA_StringDef__vepv;
#endif /* !_POA_CORBA_StringDef__vepv_defined */

#ifndef _POA_CORBA_StringDef_defined
#define _POA_CORBA_StringDef_defined

typedef struct {
  void * _private;
  POA_CORBA_StringDef__vepv* vepv;
} POA_CORBA_StringDef;
#endif /* !_POA_CORBA_StringDef_defined */

extern void POA_CORBA_StringDef__init(POA_CORBA_StringDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_StringDef__fini(POA_CORBA_StringDef *servant, CORBA_Environment *ev);
/* End interface CORBA_StringDef */

/* Begin interface CORBA_WstringDef */

  /* client-side data structures and methods */
#ifndef _CORBA_WstringDef_defined
#define _CORBA_WstringDef_defined

typedef CORBA_Object CORBA_WstringDef;
#define CORBA_WstringDef__free CORBA_Object__free
#endif /* !_CORBA_WstringDef_defined */

extern CORBA_unsigned_long CORBA_WstringDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_WstringDef_struct;
#define TC_CORBA_WstringDef (&TC_CORBA_WstringDef_struct)
extern CORBA_unsigned_long CORBA_WstringDef__get_bound(CORBA_WstringDef _obj, CORBA_Environment *ev);
extern void CORBA_WstringDef__set_bound(CORBA_WstringDef _obj, const CORBA_unsigned_long value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_WstringDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_WstringDef__get_def_kind(CORBA_WstringDef _obj, CORBA_Environment *ev);
extern void CORBA_WstringDef_destroy(CORBA_WstringDef _obj, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_WstringDef__get_type(CORBA_WstringDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_WstringDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_WstringDef__epv_defined
#define _POA_CORBA_WstringDef__epv_defined

typedef struct {
  void *_private;
  CORBA_unsigned_long (*_get_bound)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_bound)(PortableServer_Servant servant, const CORBA_unsigned_long value, CORBA_Environment *ev);
} POA_CORBA_WstringDef__epv;
#endif /* !_POA_CORBA_WstringDef__epv_defined */

#ifndef _POA_CORBA_WstringDef__vepv_defined
#define _POA_CORBA_WstringDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_WstringDef__epv *CORBA_WstringDef_epv;
} POA_CORBA_WstringDef__vepv;
#endif /* !_POA_CORBA_WstringDef__vepv_defined */

#ifndef _POA_CORBA_WstringDef_defined
#define _POA_CORBA_WstringDef_defined

typedef struct {
  void * _private;
  POA_CORBA_WstringDef__vepv* vepv;
} POA_CORBA_WstringDef;
#endif /* !_POA_CORBA_WstringDef_defined */

extern void POA_CORBA_WstringDef__init(POA_CORBA_WstringDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_WstringDef__fini(POA_CORBA_WstringDef *servant, CORBA_Environment *ev);
/* End interface CORBA_WstringDef */

/* Begin interface CORBA_FixedDef */

  /* client-side data structures and methods */
#ifndef _CORBA_FixedDef_defined
#define _CORBA_FixedDef_defined

typedef CORBA_Object CORBA_FixedDef;
#define CORBA_FixedDef__free CORBA_Object__free
#endif /* !_CORBA_FixedDef_defined */

extern CORBA_unsigned_long CORBA_FixedDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_FixedDef_struct;
#define TC_CORBA_FixedDef (&TC_CORBA_FixedDef_struct)
extern CORBA_unsigned_short CORBA_FixedDef__get_digits(CORBA_FixedDef _obj, CORBA_Environment *ev);
extern void CORBA_FixedDef__set_digits(CORBA_FixedDef _obj, const CORBA_unsigned_short value, CORBA_Environment *ev);

extern CORBA_short CORBA_FixedDef__get_scale(CORBA_FixedDef _obj, CORBA_Environment *ev);
extern void CORBA_FixedDef__set_scale(CORBA_FixedDef _obj, const CORBA_short value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_FixedDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_FixedDef__get_def_kind(CORBA_FixedDef _obj, CORBA_Environment *ev);
extern void CORBA_FixedDef_destroy(CORBA_FixedDef _obj, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_FixedDef__get_type(CORBA_FixedDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_FixedDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_FixedDef__epv_defined
#define _POA_CORBA_FixedDef__epv_defined

typedef struct {
  void *_private;
  CORBA_unsigned_short (*_get_digits)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_digits)(PortableServer_Servant servant, const CORBA_unsigned_short value, CORBA_Environment *ev);
  CORBA_short (*_get_scale)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_scale)(PortableServer_Servant servant, const CORBA_short value, CORBA_Environment *ev);
} POA_CORBA_FixedDef__epv;
#endif /* !_POA_CORBA_FixedDef__epv_defined */

#ifndef _POA_CORBA_FixedDef__vepv_defined
#define _POA_CORBA_FixedDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_FixedDef__epv *CORBA_FixedDef_epv;
} POA_CORBA_FixedDef__vepv;
#endif /* !_POA_CORBA_FixedDef__vepv_defined */

#ifndef _POA_CORBA_FixedDef_defined
#define _POA_CORBA_FixedDef_defined

typedef struct {
  void * _private;
  POA_CORBA_FixedDef__vepv* vepv;
} POA_CORBA_FixedDef;
#endif /* !_POA_CORBA_FixedDef_defined */

extern void POA_CORBA_FixedDef__init(POA_CORBA_FixedDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_FixedDef__fini(POA_CORBA_FixedDef *servant, CORBA_Environment *ev);
/* End interface CORBA_FixedDef */

/* Begin interface CORBA_SequenceDef */

  /* client-side data structures and methods */
#ifndef _CORBA_SequenceDef_defined
#define _CORBA_SequenceDef_defined

typedef CORBA_Object CORBA_SequenceDef;
#define CORBA_SequenceDef__free CORBA_Object__free
#endif /* !_CORBA_SequenceDef_defined */

extern CORBA_unsigned_long CORBA_SequenceDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_SequenceDef_struct;
#define TC_CORBA_SequenceDef (&TC_CORBA_SequenceDef_struct)
extern CORBA_unsigned_long CORBA_SequenceDef__get_bound(CORBA_SequenceDef _obj, CORBA_Environment *ev);
extern void CORBA_SequenceDef__set_bound(CORBA_SequenceDef _obj, const CORBA_unsigned_long value, CORBA_Environment *ev);

extern CORBA_TypeCode CORBA_SequenceDef__get_element_type(CORBA_SequenceDef _obj, CORBA_Environment *ev);

extern CORBA_IDLType CORBA_SequenceDef__get_element_type_def(CORBA_SequenceDef _obj, CORBA_Environment *ev);
extern void CORBA_SequenceDef__set_element_type_def(CORBA_SequenceDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_SequenceDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_SequenceDef__get_def_kind(CORBA_SequenceDef _obj, CORBA_Environment *ev);
extern void CORBA_SequenceDef_destroy(CORBA_SequenceDef _obj, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_SequenceDef__get_type(CORBA_SequenceDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_SequenceDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_SequenceDef__epv_defined
#define _POA_CORBA_SequenceDef__epv_defined

typedef struct {
  void *_private;
  CORBA_unsigned_long (*_get_bound)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_bound)(PortableServer_Servant servant, const CORBA_unsigned_long value, CORBA_Environment *ev);
  CORBA_TypeCode (*_get_element_type)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_IDLType (*_get_element_type_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_element_type_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
} POA_CORBA_SequenceDef__epv;
#endif /* !_POA_CORBA_SequenceDef__epv_defined */

#ifndef _POA_CORBA_SequenceDef__vepv_defined
#define _POA_CORBA_SequenceDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_SequenceDef__epv *CORBA_SequenceDef_epv;
} POA_CORBA_SequenceDef__vepv;
#endif /* !_POA_CORBA_SequenceDef__vepv_defined */

#ifndef _POA_CORBA_SequenceDef_defined
#define _POA_CORBA_SequenceDef_defined

typedef struct {
  void * _private;
  POA_CORBA_SequenceDef__vepv* vepv;
} POA_CORBA_SequenceDef;
#endif /* !_POA_CORBA_SequenceDef_defined */

extern void POA_CORBA_SequenceDef__init(POA_CORBA_SequenceDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_SequenceDef__fini(POA_CORBA_SequenceDef *servant, CORBA_Environment *ev);
/* End interface CORBA_SequenceDef */

/* Begin interface CORBA_ArrayDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ArrayDef_defined
#define _CORBA_ArrayDef_defined

typedef CORBA_Object CORBA_ArrayDef;
#define CORBA_ArrayDef__free CORBA_Object__free
#endif /* !_CORBA_ArrayDef_defined */

extern CORBA_unsigned_long CORBA_ArrayDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_ArrayDef_struct;
#define TC_CORBA_ArrayDef (&TC_CORBA_ArrayDef_struct)
extern CORBA_unsigned_long CORBA_ArrayDef__get_length(CORBA_ArrayDef _obj, CORBA_Environment *ev);
extern void CORBA_ArrayDef__set_length(CORBA_ArrayDef _obj, const CORBA_unsigned_long value, CORBA_Environment *ev);

extern CORBA_TypeCode CORBA_ArrayDef__get_element_type(CORBA_ArrayDef _obj, CORBA_Environment *ev);

extern CORBA_IDLType CORBA_ArrayDef__get_element_type_def(CORBA_ArrayDef _obj, CORBA_Environment *ev);
extern void CORBA_ArrayDef__set_element_type_def(CORBA_ArrayDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_ArrayDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_ArrayDef__get_def_kind(CORBA_ArrayDef _obj, CORBA_Environment *ev);
extern void CORBA_ArrayDef_destroy(CORBA_ArrayDef _obj, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_ArrayDef__get_type(CORBA_ArrayDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_ArrayDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_ArrayDef__epv_defined
#define _POA_CORBA_ArrayDef__epv_defined

typedef struct {
  void *_private;
  CORBA_unsigned_long (*_get_length)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_length)(PortableServer_Servant servant, const CORBA_unsigned_long value, CORBA_Environment *ev);
  CORBA_TypeCode (*_get_element_type)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_IDLType (*_get_element_type_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_element_type_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
} POA_CORBA_ArrayDef__epv;
#endif /* !_POA_CORBA_ArrayDef__epv_defined */

#ifndef _POA_CORBA_ArrayDef__vepv_defined
#define _POA_CORBA_ArrayDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_ArrayDef__epv *CORBA_ArrayDef_epv;
} POA_CORBA_ArrayDef__vepv;
#endif /* !_POA_CORBA_ArrayDef__vepv_defined */

#ifndef _POA_CORBA_ArrayDef_defined
#define _POA_CORBA_ArrayDef_defined

typedef struct {
  void * _private;
  POA_CORBA_ArrayDef__vepv* vepv;
} POA_CORBA_ArrayDef;
#endif /* !_POA_CORBA_ArrayDef_defined */

extern void POA_CORBA_ArrayDef__init(POA_CORBA_ArrayDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_ArrayDef__fini(POA_CORBA_ArrayDef *servant, CORBA_Environment *ev);
/* End interface CORBA_ArrayDef */

/* Begin interface CORBA_ExceptionDef */

  /* client-side data structures and methods */
#ifndef _CORBA_ExceptionDef_defined
#define _CORBA_ExceptionDef_defined

typedef CORBA_Object CORBA_ExceptionDef;
#define CORBA_ExceptionDef__free CORBA_Object__free
#endif /* !_CORBA_ExceptionDef_defined */

extern CORBA_unsigned_long CORBA_ExceptionDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_ExceptionDef_struct;
#define TC_CORBA_ExceptionDef (&TC_CORBA_ExceptionDef_struct)
extern CORBA_TypeCode CORBA_ExceptionDef__get_type(CORBA_ExceptionDef _obj, CORBA_Environment *ev);

extern CORBA_StructMemberSeq* CORBA_ExceptionDef__get_members(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern void CORBA_ExceptionDef__set_members(CORBA_ExceptionDef _obj, const CORBA_StructMemberSeq* value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_ExceptionDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_ExceptionDef__get_def_kind(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern void CORBA_ExceptionDef_destroy(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_ExceptionDef__get_id(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern void CORBA_ExceptionDef__set_id(CORBA_ExceptionDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_ExceptionDef__get_name(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern void CORBA_ExceptionDef__set_name(CORBA_ExceptionDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_ExceptionDef__get_version(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern void CORBA_ExceptionDef__set_version(CORBA_ExceptionDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_ExceptionDef__get_defined_in(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_ExceptionDef__get_absolute_name(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_ExceptionDef__get_containing_repository(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_ExceptionDef_describe(CORBA_ExceptionDef _obj, CORBA_Environment *ev);
extern void CORBA_ExceptionDef_move(CORBA_ExceptionDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_Container */
extern CORBA_Contained CORBA_ExceptionDef_lookup(CORBA_ExceptionDef _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_ExceptionDef_contents(CORBA_ExceptionDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_ExceptionDef_lookup_name(CORBA_ExceptionDef _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_Container_DescriptionSeq* CORBA_ExceptionDef_describe_contents(CORBA_ExceptionDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
extern CORBA_ModuleDef CORBA_ExceptionDef_create_module(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
extern CORBA_ConstantDef CORBA_ExceptionDef_create_constant(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
extern CORBA_StructDef CORBA_ExceptionDef_create_struct(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
extern CORBA_UnionDef CORBA_ExceptionDef_create_union(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
extern CORBA_EnumDef CORBA_ExceptionDef_create_enum(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
extern CORBA_AliasDef CORBA_ExceptionDef_create_alias(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
extern CORBA_InterfaceDef CORBA_ExceptionDef_create_interface(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
extern CORBA_ExceptionDef CORBA_ExceptionDef_create_exception(CORBA_ExceptionDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
/* End inherited operations for CORBA_ExceptionDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_ExceptionDef__epv_defined
#define _POA_CORBA_ExceptionDef__epv_defined

typedef struct {
  void *_private;
  CORBA_TypeCode (*_get_type)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_StructMemberSeq* (*_get_members)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_members)(PortableServer_Servant servant, const CORBA_StructMemberSeq* value, CORBA_Environment *ev);
} POA_CORBA_ExceptionDef__epv;
#endif /* !_POA_CORBA_ExceptionDef__epv_defined */

#ifndef _POA_CORBA_ExceptionDef__vepv_defined
#define _POA_CORBA_ExceptionDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
  POA_CORBA_ExceptionDef__epv *CORBA_ExceptionDef_epv;
} POA_CORBA_ExceptionDef__vepv;
#endif /* !_POA_CORBA_ExceptionDef__vepv_defined */

#ifndef _POA_CORBA_ExceptionDef_defined
#define _POA_CORBA_ExceptionDef_defined

typedef struct {
  void * _private;
  POA_CORBA_ExceptionDef__vepv* vepv;
} POA_CORBA_ExceptionDef;
#endif /* !_POA_CORBA_ExceptionDef_defined */

extern void POA_CORBA_ExceptionDef__init(POA_CORBA_ExceptionDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_ExceptionDef__fini(POA_CORBA_ExceptionDef *servant, CORBA_Environment *ev);
/* End interface CORBA_ExceptionDef */

#ifndef _CORBA_ExceptionDescription_defined
#define _CORBA_ExceptionDescription_defined

typedef struct CORBA_ExceptionDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_TypeCode type;

} CORBA_ExceptionDescription;
#endif /* !_CORBA_ExceptionDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ExceptionDescription_struct;
#define TC_CORBA_ExceptionDescription (&TC_CORBA_ExceptionDescription_struct)
extern CORBA_ExceptionDescription* CORBA_ExceptionDescription__alloc(void);
extern gpointer CORBA_ExceptionDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_AttributeMode_defined
#define _CORBA_AttributeMode_defined

typedef enum {
  CORBA_ATTR_NORMAL,
  CORBA_ATTR_READONLY
} CORBA_AttributeMode;
#endif /* !_CORBA_AttributeMode_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_AttributeMode_struct;
#define TC_CORBA_AttributeMode (&TC_CORBA_AttributeMode_struct)

/* Begin interface CORBA_AttributeDef */

  /* client-side data structures and methods */
#ifndef _CORBA_AttributeDef_defined
#define _CORBA_AttributeDef_defined

typedef CORBA_Object CORBA_AttributeDef;
#define CORBA_AttributeDef__free CORBA_Object__free
#endif /* !_CORBA_AttributeDef_defined */

extern CORBA_unsigned_long CORBA_AttributeDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_AttributeDef_struct;
#define TC_CORBA_AttributeDef (&TC_CORBA_AttributeDef_struct)
extern CORBA_TypeCode CORBA_AttributeDef__get_type(CORBA_AttributeDef _obj, CORBA_Environment *ev);

extern CORBA_IDLType CORBA_AttributeDef__get_type_def(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef__set_type_def(CORBA_AttributeDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

extern CORBA_AttributeMode CORBA_AttributeDef__get_mode(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef__set_mode(CORBA_AttributeDef _obj, const CORBA_AttributeMode value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_AttributeDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_AttributeDef__get_def_kind(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef_destroy(CORBA_AttributeDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_AttributeDef__get_id(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef__set_id(CORBA_AttributeDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_AttributeDef__get_name(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef__set_name(CORBA_AttributeDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_AttributeDef__get_version(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef__set_version(CORBA_AttributeDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_AttributeDef__get_defined_in(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_AttributeDef__get_absolute_name(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_AttributeDef__get_containing_repository(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_AttributeDef_describe(CORBA_AttributeDef _obj, CORBA_Environment *ev);
extern void CORBA_AttributeDef_move(CORBA_AttributeDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* End inherited operations for CORBA_AttributeDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_AttributeDef__epv_defined
#define _POA_CORBA_AttributeDef__epv_defined

typedef struct {
  void *_private;
  CORBA_TypeCode (*_get_type)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_IDLType (*_get_type_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_type_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
  CORBA_AttributeMode (*_get_mode)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_mode)(PortableServer_Servant servant, const CORBA_AttributeMode value, CORBA_Environment *ev);
} POA_CORBA_AttributeDef__epv;
#endif /* !_POA_CORBA_AttributeDef__epv_defined */

#ifndef _POA_CORBA_AttributeDef__vepv_defined
#define _POA_CORBA_AttributeDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_AttributeDef__epv *CORBA_AttributeDef_epv;
} POA_CORBA_AttributeDef__vepv;
#endif /* !_POA_CORBA_AttributeDef__vepv_defined */

#ifndef _POA_CORBA_AttributeDef_defined
#define _POA_CORBA_AttributeDef_defined

typedef struct {
  void * _private;
  POA_CORBA_AttributeDef__vepv* vepv;
} POA_CORBA_AttributeDef;
#endif /* !_POA_CORBA_AttributeDef_defined */

extern void POA_CORBA_AttributeDef__init(POA_CORBA_AttributeDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_AttributeDef__fini(POA_CORBA_AttributeDef *servant, CORBA_Environment *ev);
/* End interface CORBA_AttributeDef */

#ifndef _CORBA_AttributeDescription_defined
#define _CORBA_AttributeDescription_defined

typedef struct CORBA_AttributeDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_TypeCode type;

  CORBA_AttributeMode mode;

} CORBA_AttributeDescription;
#endif /* !_CORBA_AttributeDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_AttributeDescription_struct;
#define TC_CORBA_AttributeDescription (&TC_CORBA_AttributeDescription_struct)
extern CORBA_AttributeDescription* CORBA_AttributeDescription__alloc(void);
extern gpointer CORBA_AttributeDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_OperationMode_defined
#define _CORBA_OperationMode_defined

typedef enum {
  CORBA_OP_NORMAL,
  CORBA_OP_ONEWAY
} CORBA_OperationMode;
#endif /* !_CORBA_OperationMode_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_OperationMode_struct;
#define TC_CORBA_OperationMode (&TC_CORBA_OperationMode_struct)

#ifndef _CORBA_ParameterMode_defined
#define _CORBA_ParameterMode_defined

typedef enum {
  CORBA_PARAM_IN,
  CORBA_PARAM_OUT,
  CORBA_PARAM_INOUT
} CORBA_ParameterMode;
#endif /* !_CORBA_ParameterMode_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ParameterMode_struct;
#define TC_CORBA_ParameterMode (&TC_CORBA_ParameterMode_struct)

#ifndef _CORBA_ParameterDescription_defined
#define _CORBA_ParameterDescription_defined

typedef struct CORBA_ParameterDescription {
  CORBA_Identifier name;

  CORBA_TypeCode type;

  CORBA_IDLType type_def;

  CORBA_ParameterMode mode;

} CORBA_ParameterDescription;
#endif /* !_CORBA_ParameterDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ParameterDescription_struct;
#define TC_CORBA_ParameterDescription (&TC_CORBA_ParameterDescription_struct)
extern CORBA_ParameterDescription* CORBA_ParameterDescription__alloc(void);
extern gpointer CORBA_ParameterDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_ParDescriptionSeq_defined
#define _CORBA_ParDescriptionSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_ParameterDescription* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_ParDescriptionSeq;
#endif /* !_CORBA_ParDescriptionSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ParDescriptionSeq_struct;
#define TC_CORBA_ParDescriptionSeq (&TC_CORBA_ParDescriptionSeq_struct)
extern CORBA_ParameterDescription* CORBA_sequence_CORBA_ParameterDescription_allocbuf(CORBA_unsigned_long len);
extern CORBA_ParDescriptionSeq* CORBA_ParDescriptionSeq__alloc(void);
extern gpointer CORBA_ParDescriptionSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_ContextIdentifier_defined
#define _CORBA_ContextIdentifier_defined

typedef CORBA_Identifier CORBA_ContextIdentifier;
#endif /* !_CORBA_ContextIdentifier_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ContextIdentifier_struct;
#define TC_CORBA_ContextIdentifier (&TC_CORBA_ContextIdentifier_struct)
extern CORBA_ContextIdentifier* CORBA_ContextIdentifier__alloc(void);
#define CORBA_ContextIdentifier__free CORBA_Identifier__free

#ifndef _CORBA_ContextIdSeq_defined
#define _CORBA_ContextIdSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_ContextIdentifier* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_ContextIdSeq;
#endif /* !_CORBA_ContextIdSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ContextIdSeq_struct;
#define TC_CORBA_ContextIdSeq (&TC_CORBA_ContextIdSeq_struct)
extern CORBA_ContextIdentifier* CORBA_sequence_CORBA_ContextIdentifier_allocbuf(CORBA_unsigned_long len);
extern CORBA_ContextIdSeq* CORBA_ContextIdSeq__alloc(void);
extern gpointer CORBA_ContextIdSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_ExceptionDefSeq_defined
#define _CORBA_ExceptionDefSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_ExceptionDef* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_ExceptionDefSeq;
#endif /* !_CORBA_ExceptionDefSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ExceptionDefSeq_struct;
#define TC_CORBA_ExceptionDefSeq (&TC_CORBA_ExceptionDefSeq_struct)
extern CORBA_ExceptionDef* CORBA_sequence_CORBA_ExceptionDef_allocbuf(CORBA_unsigned_long len);
extern CORBA_ExceptionDefSeq* CORBA_ExceptionDefSeq__alloc(void);
extern gpointer CORBA_ExceptionDefSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_ExcDescriptionSeq_defined
#define _CORBA_ExcDescriptionSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_ExceptionDescription* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_ExcDescriptionSeq;
#endif /* !_CORBA_ExcDescriptionSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_ExcDescriptionSeq_struct;
#define TC_CORBA_ExcDescriptionSeq (&TC_CORBA_ExcDescriptionSeq_struct)
extern CORBA_ExceptionDescription* CORBA_sequence_CORBA_ExceptionDescription_allocbuf(CORBA_unsigned_long len);
extern CORBA_ExcDescriptionSeq* CORBA_ExcDescriptionSeq__alloc(void);
extern gpointer CORBA_ExcDescriptionSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
/* Begin interface CORBA_OperationDef */

  /* client-side data structures and methods */
#ifndef _CORBA_OperationDef_defined
#define _CORBA_OperationDef_defined

typedef CORBA_Object CORBA_OperationDef;
#define CORBA_OperationDef__free CORBA_Object__free
#endif /* !_CORBA_OperationDef_defined */

extern CORBA_unsigned_long CORBA_OperationDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_OperationDef_struct;
#define TC_CORBA_OperationDef (&TC_CORBA_OperationDef_struct)
extern CORBA_TypeCode CORBA_OperationDef__get_result(CORBA_OperationDef _obj, CORBA_Environment *ev);

extern CORBA_IDLType CORBA_OperationDef__get_result_def(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_result_def(CORBA_OperationDef _obj, const CORBA_IDLType value, CORBA_Environment *ev);

extern CORBA_ParDescriptionSeq* CORBA_OperationDef__get_params(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_params(CORBA_OperationDef _obj, const CORBA_ParDescriptionSeq* value, CORBA_Environment *ev);

extern CORBA_OperationMode CORBA_OperationDef__get_mode(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_mode(CORBA_OperationDef _obj, const CORBA_OperationMode value, CORBA_Environment *ev);

extern CORBA_ContextIdSeq* CORBA_OperationDef__get_contexts(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_contexts(CORBA_OperationDef _obj, const CORBA_ContextIdSeq* value, CORBA_Environment *ev);

extern CORBA_ExceptionDefSeq* CORBA_OperationDef__get_exceptions(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_exceptions(CORBA_OperationDef _obj, const CORBA_ExceptionDefSeq* value, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_OperationDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_OperationDef__get_def_kind(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef_destroy(CORBA_OperationDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_OperationDef__get_id(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_id(CORBA_OperationDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_OperationDef__get_name(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_name(CORBA_OperationDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_OperationDef__get_version(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef__set_version(CORBA_OperationDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_OperationDef__get_defined_in(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_OperationDef__get_absolute_name(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_OperationDef__get_containing_repository(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_OperationDef_describe(CORBA_OperationDef _obj, CORBA_Environment *ev);
extern void CORBA_OperationDef_move(CORBA_OperationDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* End inherited operations for CORBA_OperationDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_OperationDef__epv_defined
#define _POA_CORBA_OperationDef__epv_defined

typedef struct {
  void *_private;
  CORBA_TypeCode (*_get_result)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_IDLType (*_get_result_def)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_result_def)(PortableServer_Servant servant, const CORBA_IDLType value, CORBA_Environment *ev);
  CORBA_ParDescriptionSeq* (*_get_params)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_params)(PortableServer_Servant servant, const CORBA_ParDescriptionSeq* value, CORBA_Environment *ev);
  CORBA_OperationMode (*_get_mode)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_mode)(PortableServer_Servant servant, const CORBA_OperationMode value, CORBA_Environment *ev);
  CORBA_ContextIdSeq* (*_get_contexts)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_contexts)(PortableServer_Servant servant, const CORBA_ContextIdSeq* value, CORBA_Environment *ev);
  CORBA_ExceptionDefSeq* (*_get_exceptions)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_exceptions)(PortableServer_Servant servant, const CORBA_ExceptionDefSeq* value, CORBA_Environment *ev);
} POA_CORBA_OperationDef__epv;
#endif /* !_POA_CORBA_OperationDef__epv_defined */

#ifndef _POA_CORBA_OperationDef__vepv_defined
#define _POA_CORBA_OperationDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_OperationDef__epv *CORBA_OperationDef_epv;
} POA_CORBA_OperationDef__vepv;
#endif /* !_POA_CORBA_OperationDef__vepv_defined */

#ifndef _POA_CORBA_OperationDef_defined
#define _POA_CORBA_OperationDef_defined

typedef struct {
  void * _private;
  POA_CORBA_OperationDef__vepv* vepv;
} POA_CORBA_OperationDef;
#endif /* !_POA_CORBA_OperationDef_defined */

extern void POA_CORBA_OperationDef__init(POA_CORBA_OperationDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_OperationDef__fini(POA_CORBA_OperationDef *servant, CORBA_Environment *ev);
/* End interface CORBA_OperationDef */

#ifndef _CORBA_OperationDescription_defined
#define _CORBA_OperationDescription_defined

typedef struct CORBA_OperationDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_TypeCode result;

  CORBA_OperationMode mode;

  CORBA_ContextIdSeq contexts;

  CORBA_ParDescriptionSeq parameters;

  CORBA_ExcDescriptionSeq exceptions;

} CORBA_OperationDescription;
#endif /* !_CORBA_OperationDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_OperationDescription_struct;
#define TC_CORBA_OperationDescription (&TC_CORBA_OperationDescription_struct)
extern CORBA_OperationDescription* CORBA_OperationDescription__alloc(void);
extern gpointer CORBA_OperationDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

#ifndef _CORBA_RepositoryIdSeq_defined
#define _CORBA_RepositoryIdSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_RepositoryId* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_RepositoryIdSeq;
#endif /* !_CORBA_RepositoryIdSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_RepositoryIdSeq_struct;
#define TC_CORBA_RepositoryIdSeq (&TC_CORBA_RepositoryIdSeq_struct)
extern CORBA_RepositoryId* CORBA_sequence_CORBA_RepositoryId_allocbuf(CORBA_unsigned_long len);
extern CORBA_RepositoryIdSeq* CORBA_RepositoryIdSeq__alloc(void);
extern gpointer CORBA_RepositoryIdSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_OpDescriptionSeq_defined
#define _CORBA_OpDescriptionSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_OperationDescription* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_OpDescriptionSeq;
#endif /* !_CORBA_OpDescriptionSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_OpDescriptionSeq_struct;
#define TC_CORBA_OpDescriptionSeq (&TC_CORBA_OpDescriptionSeq_struct)
extern CORBA_OperationDescription* CORBA_sequence_CORBA_OperationDescription_allocbuf(CORBA_unsigned_long len);
extern CORBA_OpDescriptionSeq* CORBA_OpDescriptionSeq__alloc(void);
extern gpointer CORBA_OpDescriptionSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
#ifndef _CORBA_AttrDescriptionSeq_defined
#define _CORBA_AttrDescriptionSeq_defined

typedef struct {
  CORBA_unsigned_long _maximum;
  CORBA_unsigned_long _length;
  CORBA_AttributeDescription* _buffer;
  CORBA_boolean _release : 1; /* ORBit-specific; see page 19-14 of CORBA 2.2 spec */
} CORBA_AttrDescriptionSeq;
#endif /* !_CORBA_AttrDescriptionSeq_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_AttrDescriptionSeq_struct;
#define TC_CORBA_AttrDescriptionSeq (&TC_CORBA_AttrDescriptionSeq_struct)
extern CORBA_AttributeDescription* CORBA_sequence_CORBA_AttributeDescription_allocbuf(CORBA_unsigned_long len);
extern CORBA_AttrDescriptionSeq* CORBA_AttrDescriptionSeq__alloc(void);
extern gpointer CORBA_AttrDescriptionSeq__free(gpointer mem, gpointer dat, CORBA_boolean free_strings); /* ORBit internals */
 
/* Begin interface CORBA_InterfaceDef */

  /* client-side data structures and methods */
#ifndef _CORBA_InterfaceDef_defined
#define _CORBA_InterfaceDef_defined

typedef CORBA_Object CORBA_InterfaceDef;
#define CORBA_InterfaceDef__free CORBA_Object__free
#endif /* !_CORBA_InterfaceDef_defined */

extern CORBA_unsigned_long CORBA_InterfaceDef__classid;
extern const struct CORBA_TypeCode_struct TC_CORBA_InterfaceDef_struct;
#define TC_CORBA_InterfaceDef (&TC_CORBA_InterfaceDef_struct)
extern CORBA_InterfaceDefSeq* CORBA_InterfaceDef__get_base_interfaces(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern void CORBA_InterfaceDef__set_base_interfaces(CORBA_InterfaceDef _obj, const CORBA_InterfaceDefSeq* value, CORBA_Environment *ev);

extern CORBA_boolean CORBA_InterfaceDef_is_a(CORBA_InterfaceDef _obj, const CORBA_RepositoryId interface_id, CORBA_Environment *ev);

#ifndef _CORBA_InterfaceDef_FullInterfaceDescription_defined
#define _CORBA_InterfaceDef_FullInterfaceDescription_defined

typedef struct CORBA_InterfaceDef_FullInterfaceDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_OpDescriptionSeq operations;

  CORBA_AttrDescriptionSeq attributes;

  CORBA_RepositoryIdSeq base_interfaces;

  CORBA_TypeCode type;

} CORBA_InterfaceDef_FullInterfaceDescription;
#endif /* !_CORBA_InterfaceDef_FullInterfaceDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_InterfaceDef_FullInterfaceDescription_struct;
#define TC_CORBA_InterfaceDef_FullInterfaceDescription (&TC_CORBA_InterfaceDef_FullInterfaceDescription_struct)
extern CORBA_InterfaceDef_FullInterfaceDescription* CORBA_InterfaceDef_FullInterfaceDescription__alloc(void);
extern gpointer CORBA_InterfaceDef_FullInterfaceDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

extern CORBA_InterfaceDef_FullInterfaceDescription* CORBA_InterfaceDef_describe_interface(CORBA_InterfaceDef _obj, CORBA_Environment *ev);

extern CORBA_AttributeDef CORBA_InterfaceDef_create_attribute(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_AttributeMode mode, CORBA_Environment *ev);

extern CORBA_OperationDef CORBA_InterfaceDef_create_operation(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType result, const CORBA_OperationMode mode, const CORBA_ParDescriptionSeq* params, const CORBA_ExceptionDefSeq* exceptions, const CORBA_ContextIdSeq* contexts, CORBA_Environment *ev);

/* Begin inherited operations for CORBA_InterfaceDef */

/* From interface CORBA_IRObject */
extern CORBA_DefinitionKind CORBA_InterfaceDef__get_def_kind(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern void CORBA_InterfaceDef_destroy(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
/* From interface CORBA_Container */
extern CORBA_Contained CORBA_InterfaceDef_lookup(CORBA_InterfaceDef _obj, const CORBA_ScopedName search_name, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_InterfaceDef_contents(CORBA_InterfaceDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_ContainedSeq* CORBA_InterfaceDef_lookup_name(CORBA_InterfaceDef _obj, const CORBA_Identifier search_name, const CORBA_long levels_to_search, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, CORBA_Environment *ev);
extern CORBA_Container_DescriptionSeq* CORBA_InterfaceDef_describe_contents(CORBA_InterfaceDef _obj, const CORBA_DefinitionKind limit_type, const CORBA_boolean exclude_inherited, const CORBA_long max_returned_objs, CORBA_Environment *ev);
extern CORBA_ModuleDef CORBA_InterfaceDef_create_module(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, CORBA_Environment *ev);
extern CORBA_ConstantDef CORBA_InterfaceDef_create_constant(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_any* value, CORBA_Environment *ev);
extern CORBA_StructDef CORBA_InterfaceDef_create_struct(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
extern CORBA_UnionDef CORBA_InterfaceDef_create_union(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType discriminator_type, const CORBA_UnionMemberSeq* members, CORBA_Environment *ev);
extern CORBA_EnumDef CORBA_InterfaceDef_create_enum(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_EnumMemberSeq* members, CORBA_Environment *ev);
extern CORBA_AliasDef CORBA_InterfaceDef_create_alias(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType original_type, CORBA_Environment *ev);
extern CORBA_InterfaceDef CORBA_InterfaceDef_create_interface(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_InterfaceDefSeq* base_interfaces, CORBA_Environment *ev);
extern CORBA_ExceptionDef CORBA_InterfaceDef_create_exception(CORBA_InterfaceDef _obj, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_StructMemberSeq* members, CORBA_Environment *ev);
/* From interface CORBA_Contained */
extern CORBA_RepositoryId CORBA_InterfaceDef__get_id(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern void CORBA_InterfaceDef__set_id(CORBA_InterfaceDef _obj, const CORBA_RepositoryId value, CORBA_Environment *ev);
extern CORBA_Identifier CORBA_InterfaceDef__get_name(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern void CORBA_InterfaceDef__set_name(CORBA_InterfaceDef _obj, const CORBA_Identifier value, CORBA_Environment *ev);
extern CORBA_VersionSpec CORBA_InterfaceDef__get_version(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern void CORBA_InterfaceDef__set_version(CORBA_InterfaceDef _obj, const CORBA_VersionSpec value, CORBA_Environment *ev);
extern CORBA_Container CORBA_InterfaceDef__get_defined_in(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern CORBA_ScopedName CORBA_InterfaceDef__get_absolute_name(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern CORBA_Repository CORBA_InterfaceDef__get_containing_repository(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern CORBA_Contained_Description* CORBA_InterfaceDef_describe(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
extern void CORBA_InterfaceDef_move(CORBA_InterfaceDef _obj, const CORBA_Container new_container, const CORBA_Identifier new_name, const CORBA_VersionSpec new_version, CORBA_Environment *ev);
/* From interface CORBA_IDLType */
extern CORBA_TypeCode CORBA_InterfaceDef__get_type(CORBA_InterfaceDef _obj, CORBA_Environment *ev);
/* End inherited operations for CORBA_InterfaceDef */

  /* server-side (via the POA) data structures and methods */
#ifndef _POA_CORBA_InterfaceDef__epv_defined
#define _POA_CORBA_InterfaceDef__epv_defined

typedef struct {
  void *_private;
  CORBA_InterfaceDefSeq* (*_get_base_interfaces)(PortableServer_Servant servant, CORBA_Environment *ev);
  void (*_set_base_interfaces)(PortableServer_Servant servant, const CORBA_InterfaceDefSeq* value, CORBA_Environment *ev);
  CORBA_boolean (*is_a)(PortableServer_Servant servant, const CORBA_RepositoryId interface_id, CORBA_Environment *ev);
  CORBA_InterfaceDef_FullInterfaceDescription* (*describe_interface)(PortableServer_Servant servant, CORBA_Environment *ev);
  CORBA_AttributeDef (*create_attribute)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType type, const CORBA_AttributeMode mode, CORBA_Environment *ev);
  CORBA_OperationDef (*create_operation)(PortableServer_Servant servant, const CORBA_RepositoryId id, const CORBA_Identifier name, const CORBA_VersionSpec version, const CORBA_IDLType result, const CORBA_OperationMode mode, const CORBA_ParDescriptionSeq* params, const CORBA_ExceptionDefSeq* exceptions, const CORBA_ContextIdSeq* contexts, CORBA_Environment *ev);
} POA_CORBA_InterfaceDef__epv;
#endif /* !_POA_CORBA_InterfaceDef__epv_defined */

#ifndef _POA_CORBA_InterfaceDef__vepv_defined
#define _POA_CORBA_InterfaceDef__vepv_defined

typedef struct {
  PortableServer_ServantBase__epv* _base_epv;
  POA_CORBA_IRObject__epv *CORBA_IRObject_epv;
  POA_CORBA_Container__epv *CORBA_Container_epv;
  POA_CORBA_Contained__epv *CORBA_Contained_epv;
  POA_CORBA_IDLType__epv *CORBA_IDLType_epv;
  POA_CORBA_InterfaceDef__epv *CORBA_InterfaceDef_epv;
} POA_CORBA_InterfaceDef__vepv;
#endif /* !_POA_CORBA_InterfaceDef__vepv_defined */

#ifndef _POA_CORBA_InterfaceDef_defined
#define _POA_CORBA_InterfaceDef_defined

typedef struct {
  void * _private;
  POA_CORBA_InterfaceDef__vepv* vepv;
} POA_CORBA_InterfaceDef;
#endif /* !_POA_CORBA_InterfaceDef_defined */

extern void POA_CORBA_InterfaceDef__init(POA_CORBA_InterfaceDef *servant, CORBA_Environment *ev);
extern void POA_CORBA_InterfaceDef__fini(POA_CORBA_InterfaceDef *servant, CORBA_Environment *ev);
/* End interface CORBA_InterfaceDef */

#ifndef _CORBA_InterfaceDescription_defined
#define _CORBA_InterfaceDescription_defined

typedef struct CORBA_InterfaceDescription {
  CORBA_Identifier name;

  CORBA_RepositoryId id;

  CORBA_RepositoryId defined_in;

  CORBA_VersionSpec version;

  CORBA_RepositoryIdSeq base_interfaces;

} CORBA_InterfaceDescription;
#endif /* !_CORBA_InterfaceDescription_defined */

extern const struct CORBA_TypeCode_struct TC_CORBA_InterfaceDescription_struct;
#define TC_CORBA_InterfaceDescription (&TC_CORBA_InterfaceDescription_struct)
extern CORBA_InterfaceDescription* CORBA_InterfaceDescription__alloc(void);
extern gpointer CORBA_InterfaceDescription__free(gpointer mem, gpointer dat, CORBA_boolean free_strings);

/* End CORBA module CORBA */

#ifdef __cplusplus
}
#endif /* __cplusplus */

#undef ORBIT_IDL_SERIAL
