
/*
 * This file was generated by the SOM Compiler.
 * FileName: xnaming.xh.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.19
 *     SOM Emitter emitxh.dll: 2.108
 */

#ifndef SOM_Module_xnaming_ExtendedNaming_defined
#define SOM_Module_xnaming_ExtendedNaming_defined 1
#include <som.xh>

/*
 * Start of bindings for IDL types
 */

class SOMClass;
class SOMObject;
class ExtendedNaming_PropertyBindingIterator;
class ExtendedNaming_PropertyIterator;
class ExtendedNaming_IndexIterator;
class ExtendedNaming_PropertyBindingIterator;
class ExtendedNaming_PropertyIterator;
class ExtendedNaming_IndexIterator;
#ifndef _IDL_SEQUENCE_string_defined
#define _IDL_SEQUENCE_string_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    string *_buffer;
} _IDL_SEQUENCE_string;
#endif /* _IDL_SEQUENCE_string_defined */ 
typedef
_IDL_SEQUENCE_string ExtendedNaming_IList;
typedef
struct ExtendedNaming_PropertyBinding_struct {
CosNaming_Istring property_name;
boolean  sharable;
} ExtendedNaming_PropertyBinding_struct, ExtendedNaming_PropertyBinding;
#ifndef _IDL_SEQUENCE_ExtendedNaming_PropertyBinding_struct_defined
#define _IDL_SEQUENCE_ExtendedNaming_PropertyBinding_struct_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    ExtendedNaming_PropertyBinding_struct *_buffer;
} _IDL_SEQUENCE_ExtendedNaming_PropertyBinding_struct;
#endif /* _IDL_SEQUENCE_ExtendedNaming_PropertyBinding_struct_defined */ 
typedef
_IDL_SEQUENCE_ExtendedNaming_PropertyBinding_struct ExtendedNaming_PropertyBindingList;
typedef
struct ExtendedNaming_Property_struct {
ExtendedNaming_PropertyBinding binding;
any  value;
} ExtendedNaming_Property_struct, ExtendedNaming_Property;
#ifndef _IDL_SEQUENCE_ExtendedNaming_Property_struct_defined
#define _IDL_SEQUENCE_ExtendedNaming_Property_struct_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    ExtendedNaming_Property_struct *_buffer;
} _IDL_SEQUENCE_ExtendedNaming_Property_struct;
#endif /* _IDL_SEQUENCE_ExtendedNaming_Property_struct_defined */ 
typedef
_IDL_SEQUENCE_ExtendedNaming_Property_struct ExtendedNaming_PropertyList;
typedef
struct ExtendedNaming_IndexDescriptor_struct {
CosNaming_Istring property_name;
TypeCode property_type;
unsigned long  distance;
} ExtendedNaming_IndexDescriptor_struct, ExtendedNaming_IndexDescriptor;
#ifndef _IDL_SEQUENCE_ExtendedNaming_IndexDescriptor_struct_defined
#define _IDL_SEQUENCE_ExtendedNaming_IndexDescriptor_struct_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    ExtendedNaming_IndexDescriptor_struct *_buffer;
} _IDL_SEQUENCE_ExtendedNaming_IndexDescriptor_struct;
#endif /* _IDL_SEQUENCE_ExtendedNaming_IndexDescriptor_struct_defined */ 
typedef
_IDL_SEQUENCE_ExtendedNaming_IndexDescriptor_struct ExtendedNaming_IndexDescriptorList;

#ifndef SOM_DONT_USE_SHORT_NAMES

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_IList
    #ifdef IList
        #undef IList
        #define SOMTGD_IList 1
    #else
        #define IList ExtendedNaming_IList
    #endif /* IList */
#endif /* SOMTGD_IList */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_PropertyBinding
    #ifdef PropertyBinding
        #undef PropertyBinding
        #define SOMTGD_PropertyBinding 1
    #else
        #define PropertyBinding ExtendedNaming_PropertyBinding
    #endif /* PropertyBinding */
#endif /* SOMTGD_PropertyBinding */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD__IDL_SEQUENCE_PropertyBinding_struct
    #ifdef _IDL_SEQUENCE_PropertyBinding_struct
        #undef _IDL_SEQUENCE_PropertyBinding_struct
        #define SOMTGD__IDL_SEQUENCE_PropertyBinding_struct 1
    #else
        #define _IDL_SEQUENCE_PropertyBinding_struct _IDL_SEQUENCE_ExtendedNaming_PropertyBinding_struct
    #endif /* _IDL_SEQUENCE_PropertyBinding_struct */
#endif /* SOMTGD__IDL_SEQUENCE_PropertyBinding_struct */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_PropertyBindingList
    #ifdef PropertyBindingList
        #undef PropertyBindingList
        #define SOMTGD_PropertyBindingList 1
    #else
        #define PropertyBindingList ExtendedNaming_PropertyBindingList
    #endif /* PropertyBindingList */
#endif /* SOMTGD_PropertyBindingList */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_Property
    #ifdef Property
        #undef Property
        #define SOMTGD_Property 1
    #else
        #define Property ExtendedNaming_Property
    #endif /* Property */
#endif /* SOMTGD_Property */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD__IDL_SEQUENCE_Property_struct
    #ifdef _IDL_SEQUENCE_Property_struct
        #undef _IDL_SEQUENCE_Property_struct
        #define SOMTGD__IDL_SEQUENCE_Property_struct 1
    #else
        #define _IDL_SEQUENCE_Property_struct _IDL_SEQUENCE_ExtendedNaming_Property_struct
    #endif /* _IDL_SEQUENCE_Property_struct */
#endif /* SOMTGD__IDL_SEQUENCE_Property_struct */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_PropertyList
    #ifdef PropertyList
        #undef PropertyList
        #define SOMTGD_PropertyList 1
    #else
        #define PropertyList ExtendedNaming_PropertyList
    #endif /* PropertyList */
#endif /* SOMTGD_PropertyList */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_IndexDescriptor
    #ifdef IndexDescriptor
        #undef IndexDescriptor
        #define SOMTGD_IndexDescriptor 1
    #else
        #define IndexDescriptor ExtendedNaming_IndexDescriptor
    #endif /* IndexDescriptor */
#endif /* SOMTGD_IndexDescriptor */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD__IDL_SEQUENCE_IndexDescriptor_struct
    #ifdef _IDL_SEQUENCE_IndexDescriptor_struct
        #undef _IDL_SEQUENCE_IndexDescriptor_struct
        #define SOMTGD__IDL_SEQUENCE_IndexDescriptor_struct 1
    #else
        #define _IDL_SEQUENCE_IndexDescriptor_struct _IDL_SEQUENCE_ExtendedNaming_IndexDescriptor_struct
    #endif /* _IDL_SEQUENCE_IndexDescriptor_struct */
#endif /* SOMTGD__IDL_SEQUENCE_IndexDescriptor_struct */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_IndexDescriptorList
    #ifdef IndexDescriptorList
        #undef IndexDescriptorList
        #define SOMTGD_IndexDescriptorList 1
    #else
        #define IndexDescriptorList ExtendedNaming_IndexDescriptorList
    #endif /* IndexDescriptorList */
#endif /* SOMTGD_IndexDescriptorList */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */
#endif /* SOM_Module_xnaming_ExtendedNaming_defined */

#ifndef SOM_ExtendedNaming_PropertyBindingIterator_xh
#define SOM_ExtendedNaming_PropertyBindingIterator_xh


#define ExtendedNaming_PropertyBindingIterator_MajorVersion 3
#define ExtendedNaming_PropertyBindingIterator_MinorVersion 0
class ExtendedNaming_PropertyBindingIterator;

/* Parents */
#ifndef SOM_SOMObject_xh
#ifdef SOMLOCALINCLUDES
#include "somobj.xh"
#else
#include <somobj.xh>
#endif
#endif

/* Useful C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

#ifndef ExtendedNaming_PropertyBindingIterator_API
#define ExtendedNaming_PropertyBindingIterator_API
/*
 * -- The Class API
 */
#ifndef SOM_IMPORTEXPORT_somnmf_xnaming
#ifdef SOM_DLL_somnmf
	/* export semantics */
	#if defined(SOM_DEFFILE_somnmf)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somnmf))\
	|| !defined(SOM_Module_xnaming_Source)
	#define SOM_IMPORTEXPORT_somnmf_xnaming
	#else
	#define SOM_IMPORTEXPORT_somnmf_xnaming SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somnmf_xnaming SOMDLLIMPORT
#endif
#endif

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

/*
 * A function to create the ExtendedNaming_PropertyBindingIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnaming SOMClass * SOMLINK ExtendedNaming_PropertyBindingIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct ExtendedNaming_PropertyBindingIteratorClassDataStructure {
	SOMClass *classObject;
	somMToken next_one;
	somMToken next_n;
	somMToken destroy;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_PropertyBindingIteratorClassData;
SOMEXTERN struct ExtendedNaming_PropertyBindingIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_PropertyBindingIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_ExtendedNaming_PropertyBindingIterator (ExtendedNaming_PropertyBindingIteratorClassData.classObject)
#ifndef SOMGD_ExtendedNaming_PropertyBindingIterator
    #if (defined(_ExtendedNaming_PropertyBindingIterator) || defined(__ExtendedNaming_PropertyBindingIterator))
        #undef _ExtendedNaming_PropertyBindingIterator
        #undef __ExtendedNaming_PropertyBindingIterator
        #define SOMGD_ExtendedNaming_PropertyBindingIterator 1
    #else
        #define _ExtendedNaming_PropertyBindingIterator _SOMCLASS_ExtendedNaming_PropertyBindingIterator
    #endif /* _ExtendedNaming_PropertyBindingIterator */
#endif /* SOMGD_ExtendedNaming_PropertyBindingIterator */
#define ExtendedNaming_PropertyBindingIterator_classObj _SOMCLASS_ExtendedNaming_PropertyBindingIterator
#define _SOMMTOKEN_ExtendedNaming_PropertyBindingIterator(method) ((somMToken)ExtendedNaming_PropertyBindingIteratorClassData.method)

/*
 * -- Typedefs for ExtendedNaming_PropertyBindingIterator Method Procedures
 */
SOMEXTERN {
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_next_one(ExtendedNaming_PropertyBindingIterator *somSelf, Environment *ev, 
		ExtendedNaming_PropertyBinding* pb);
typedef somTP_ExtendedNaming_PropertyBindingIterator_next_one *somTD_ExtendedNaming_PropertyBindingIterator_next_one;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_next_n(ExtendedNaming_PropertyBindingIterator *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_PropertyBindingList* il);
typedef somTP_ExtendedNaming_PropertyBindingIterator_next_n *somTD_ExtendedNaming_PropertyBindingIterator_next_n;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_destroy(ExtendedNaming_PropertyBindingIterator *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_PropertyBindingIterator_destroy *somTD_ExtendedNaming_PropertyBindingIterator_destroy;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultInit(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultInit *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDestruct(ExtendedNaming_PropertyBindingIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDestruct *somTD_ExtendedNaming_PropertyBindingIterator_somDestruct;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultCopyInit(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultCopyInit *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultCopyInit;
typedef ExtendedNaming_PropertyBindingIterator*   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultAssign(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultAssign *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultAssign;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstCopyInit(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstCopyInit *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultVCopyInit(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultVCopyInit *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstVCopyInit(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstVCopyInit *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstVCopyInit;
typedef ExtendedNaming_PropertyBindingIterator*   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstAssign(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstAssign *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstAssign;
typedef ExtendedNaming_PropertyBindingIterator*   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultVAssign(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultVAssign *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultVAssign;
typedef ExtendedNaming_PropertyBindingIterator*   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstVAssign(ExtendedNaming_PropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDefaultConstVAssign *somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somInit(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somInit *somTD_ExtendedNaming_PropertyBindingIterator_somInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somUninit(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somUninit *somTD_ExtendedNaming_PropertyBindingIterator_somUninit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somFree(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somFree *somTD_ExtendedNaming_PropertyBindingIterator_somFree;
typedef SOMClass*   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somGetClass(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somGetClass *somTD_ExtendedNaming_PropertyBindingIterator_somGetClass;
typedef string   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somGetClassName(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somGetClassName *somTD_ExtendedNaming_PropertyBindingIterator_somGetClassName;
typedef long   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somGetSize(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somGetSize *somTD_ExtendedNaming_PropertyBindingIterator_somGetSize;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somIsA(ExtendedNaming_PropertyBindingIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somIsA *somTD_ExtendedNaming_PropertyBindingIterator_somIsA;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somIsInstanceOf(ExtendedNaming_PropertyBindingIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somIsInstanceOf *somTD_ExtendedNaming_PropertyBindingIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somRespondsTo(ExtendedNaming_PropertyBindingIterator *somSelf, 
		somId mId);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somRespondsTo *somTD_ExtendedNaming_PropertyBindingIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDispatch(ExtendedNaming_PropertyBindingIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDispatch *somTD_ExtendedNaming_PropertyBindingIterator_somDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somClassDispatch(ExtendedNaming_PropertyBindingIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somClassDispatch *somTD_ExtendedNaming_PropertyBindingIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somCastObj(ExtendedNaming_PropertyBindingIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somCastObj *somTD_ExtendedNaming_PropertyBindingIterator_somCastObj;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somResetObj(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somResetObj *somTD_ExtendedNaming_PropertyBindingIterator_somResetObj;
typedef ExtendedNaming_PropertyBindingIterator*   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somPrintSelf(ExtendedNaming_PropertyBindingIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somPrintSelf *somTD_ExtendedNaming_PropertyBindingIterator_somPrintSelf;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDumpSelf(ExtendedNaming_PropertyBindingIterator *somSelf, 
		long level);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDumpSelf *somTD_ExtendedNaming_PropertyBindingIterator_somDumpSelf;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyBindingIterator_somDumpSelfInt(ExtendedNaming_PropertyBindingIterator *somSelf, 
		long level);
typedef somTP_ExtendedNaming_PropertyBindingIterator_somDumpSelfInt *somTD_ExtendedNaming_PropertyBindingIterator_somDumpSelfInt;
}

#endif /* ExtendedNaming_PropertyBindingIterator_API */


/*
 * -- The C++ Wrapper Class for ExtendedNaming_PropertyBindingIterator
 */
class ExtendedNaming_PropertyBindingIterator : public SOMObject
{
public:

// ExtendedNaming_PropertyBindingIterator::new creates the class object if necessary, and then uses
// somNewNoInit to allocate memory and create the object.
// Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ExtendedNaming_PropertyBindingIterator) ExtendedNaming_PropertyBindingIteratorNewClass(ExtendedNaming_PropertyBindingIterator_MajorVersion,ExtendedNaming_PropertyBindingIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_ExtendedNaming_PropertyBindingIterator)));
}

// ExtendedNaming_PropertyBindingIterator::delete uses somFree.
void operator delete(void * obj)
{
   if (obj && *(void**)obj)
      ((SOMObject*)obj)->somFree();
}

ExtendedNaming_PropertyBindingIterator& operator=(ExtendedNaming_PropertyBindingIterator& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

ExtendedNaming_PropertyBindingIterator()
{
   if (*(void**)this != (ExtendedNaming_PropertyBindingIteratorCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ExtendedNaming_PropertyBindingIterator(ExtendedNaming_PropertyBindingIterator* fromObj)
{
   if (*(void**)this != (ExtendedNaming_PropertyBindingIteratorCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: next_one */
boolean   next_one(Environment *ev, 
		ExtendedNaming_PropertyBinding* pb)
{
/*
 *  returns the next binding. If there are no more bindings
 *  'false' is returned
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyBindingIterator),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_next_one)(ExtendedNaming_PropertyBindingIteratorClassData.next_one))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)), ev,pb)
	);
}


/* method: next_n */
boolean   next_n(Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_PropertyBindingList* il)
{
/*
 *  returns at most the requested number of bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyBindingIterator),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_next_n)(ExtendedNaming_PropertyBindingIteratorClassData.next_n))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)), ev,howMany,il)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyBindingIterator),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_destroy)(ExtendedNaming_PropertyBindingIteratorClassData.destroy))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)), ev)
	);
}


/*
 * Reintroduce inherited methods
 */

/* initializer method: somDefaultInit */
void   somDefaultInit(som3InitCtrl* ctrl)
{
/*
 *  A default initializer for a SOM object. Passing a null ctrl
 *  indicates to the receiver that its class is the class of the
 *  object being initialized, whereby the initializer will determine
 *  an appropriate control structure.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl)
	);
}


/* method: somDestruct */
void   somDestruct(octet doFree, 
		som3DestructCtrl* ctrl)
{
/*
 *  The default destructor for a SOM object. A nonzero <doFree>
 *  indicates that the object storage should be freed by the
 *  object's class (via somDeallocate) after uninitialization.
 *  As with somDefaultInit, a null ctrl can be passed.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDestruct)(SOMObjectClassData.somDestruct))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),doFree,ctrl)
	);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor. Use this to make copies of objects for
 *  calling methods with "by-value" argument semantics.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
ExtendedNaming_PropertyBindingIterator*  somDefaultAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator. Use this to "assign" the state of one
 *  object to another.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstAssign */
ExtendedNaming_PropertyBindingIterator*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstAssign)(SOMObjectClassData.somDefaultConstAssign))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultVAssign */
ExtendedNaming_PropertyBindingIterator*  somDefaultVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultVAssign)(SOMObjectClassData.somDefaultVAssign))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstVAssign */
ExtendedNaming_PropertyBindingIterator*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDefaultConstVAssign)(SOMObjectClassData.somDefaultConstVAssign))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somInit */
void   somInit()
{
/*
 *  Obsolete but still supported. Override somDefaultInit instead of somInit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somInit)(SOMObjectClassData.somInit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somUninit */
void   somUninit()
{
/*
 *  Obsolete but still supported. Override somDestruct instead of somUninit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somUninit)(SOMObjectClassData.somUninit))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somFree */
void   somFree()
{
/*
 *  The default implementation just calls somDestruct.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somFree)(SOMObjectClassData.somFree))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
/*
 *  Return the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somGetClass)(SOMObjectClassData.somGetClass))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somGetClassName */
string   somGetClassName()
{
/*
 *  Return the name of the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somGetClassName)(SOMObjectClassData.somGetClassName))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somGetSize)(SOMObjectClassData.somGetSize))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver responds to methods
 *  introduced by <aClassObj>, and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somIsA)(SOMObjectClassData.somIsA))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),aClassObj)
	);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver is an instance of
 *  <aClassObj> and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),aClassObj)
	);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
/*
 *  Returns 1 (true) if the indicated method can be invoked
 *  on the receiver and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),mId)
	);
}


/* va_list method: somDispatch */

/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
/* the va_list invocation form */
boolean   SOMObject_somDispatch(somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */

/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
/* the va_list invocation form */
boolean   SOMObject_somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),clsObj,retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),clsObj,retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* castedCls)
{
/*
 *  Changes the behavior of the target object to that implemented
 *  by castedCls. This is possible when all concrete data in castedCls
 *  is also concrete in the true class of the target object.
 *  Returns true (1) on success, and false (0) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somCastObj)(SOMObjectClassData.somCastObj))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),castedCls)
	);
}


/* method: somResetObj */
boolean   somResetObj()
{
/*
 *  reset an object to its true class. Returns true always.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somResetObj)(SOMObjectClassData.somResetObj))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somPrintSelf */
ExtendedNaming_PropertyBindingIterator*  somPrintSelf()
{
/*
 *  Uses <SOMOutCharRoutine> to write a brief string with identifying
 *  information about this object.  The default implementation just gives
 *  the object's class name and its address in memory.
 *  <self> is returned.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)))
	);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write a detailed description of this object
 *  and its current state.
 * 
 *  <level> indicates the nesting level for describing compound objects
 *  it must be greater than or equal to zero.  All lines in the
 *  description will be preceeded by <2*level> spaces.
 * 
 *  This routine only actually writes the data that concerns the object
 *  as a whole, such as class, and uses <somDumpSelfInt> to describe
 *  the object's current state.  This approach allows readable
 *  descriptions of compound objects to be constructed.
 * 
 *  Generally it is not necessary to override this method, if it is
 *  overriden it generally must be completely replaced.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),level)
	);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write in the current state of this object.
 *  Generally this method will need to be overridden.  When overriding
 *  it, begin by calling the parent class form of this method and then
 *  write in a description of your class's instance data. This will
 *  result in a description of all the object's instance data going
 *  from its root ancestor class to its specific class.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyBindingIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((ExtendedNaming_PropertyBindingIterator *)((void *)this)),level)
	);
}



};   /* ExtendedNaming_PropertyBindingIterator */



#endif       /* SOM_ExtendedNaming_PropertyBindingIterator_xh */

#ifndef SOM_ExtendedNaming_PropertyIterator_xh
#define SOM_ExtendedNaming_PropertyIterator_xh


#define ExtendedNaming_PropertyIterator_MajorVersion 3
#define ExtendedNaming_PropertyIterator_MinorVersion 0
class ExtendedNaming_PropertyIterator;

/* Parents */
#ifndef SOM_SOMObject_xh
#ifdef SOMLOCALINCLUDES
#include "somobj.xh"
#else
#include <somobj.xh>
#endif
#endif

/* Useful C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

#ifndef ExtendedNaming_PropertyIterator_API
#define ExtendedNaming_PropertyIterator_API
/*
 * -- The Class API
 */

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

/*
 * A function to create the ExtendedNaming_PropertyIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnaming SOMClass * SOMLINK ExtendedNaming_PropertyIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct ExtendedNaming_PropertyIteratorClassDataStructure {
	SOMClass *classObject;
	somMToken next_one;
	somMToken next_n;
	somMToken destroy;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_PropertyIteratorClassData;
SOMEXTERN struct ExtendedNaming_PropertyIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_PropertyIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_ExtendedNaming_PropertyIterator (ExtendedNaming_PropertyIteratorClassData.classObject)
#ifndef SOMGD_ExtendedNaming_PropertyIterator
    #if (defined(_ExtendedNaming_PropertyIterator) || defined(__ExtendedNaming_PropertyIterator))
        #undef _ExtendedNaming_PropertyIterator
        #undef __ExtendedNaming_PropertyIterator
        #define SOMGD_ExtendedNaming_PropertyIterator 1
    #else
        #define _ExtendedNaming_PropertyIterator _SOMCLASS_ExtendedNaming_PropertyIterator
    #endif /* _ExtendedNaming_PropertyIterator */
#endif /* SOMGD_ExtendedNaming_PropertyIterator */
#define ExtendedNaming_PropertyIterator_classObj _SOMCLASS_ExtendedNaming_PropertyIterator
#define _SOMMTOKEN_ExtendedNaming_PropertyIterator(method) ((somMToken)ExtendedNaming_PropertyIteratorClassData.method)

/*
 * -- Typedefs for ExtendedNaming_PropertyIterator Method Procedures
 */
SOMEXTERN {
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_next_one(ExtendedNaming_PropertyIterator *somSelf, Environment *ev, 
		ExtendedNaming_Property* p);
typedef somTP_ExtendedNaming_PropertyIterator_next_one *somTD_ExtendedNaming_PropertyIterator_next_one;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_next_n(ExtendedNaming_PropertyIterator *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* pl);
typedef somTP_ExtendedNaming_PropertyIterator_next_n *somTD_ExtendedNaming_PropertyIterator_next_n;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_destroy(ExtendedNaming_PropertyIterator *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_PropertyIterator_destroy *somTD_ExtendedNaming_PropertyIterator_destroy;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultInit(ExtendedNaming_PropertyIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultInit *somTD_ExtendedNaming_PropertyIterator_somDefaultInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDestruct(ExtendedNaming_PropertyIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_ExtendedNaming_PropertyIterator_somDestruct *somTD_ExtendedNaming_PropertyIterator_somDestruct;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultCopyInit(ExtendedNaming_PropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultCopyInit *somTD_ExtendedNaming_PropertyIterator_somDefaultCopyInit;
typedef ExtendedNaming_PropertyIterator*   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultAssign(ExtendedNaming_PropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultAssign *somTD_ExtendedNaming_PropertyIterator_somDefaultAssign;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultConstCopyInit(ExtendedNaming_PropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultConstCopyInit *somTD_ExtendedNaming_PropertyIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultVCopyInit(ExtendedNaming_PropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultVCopyInit *somTD_ExtendedNaming_PropertyIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultConstVCopyInit(ExtendedNaming_PropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultConstVCopyInit *somTD_ExtendedNaming_PropertyIterator_somDefaultConstVCopyInit;
typedef ExtendedNaming_PropertyIterator*   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultConstAssign(ExtendedNaming_PropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultConstAssign *somTD_ExtendedNaming_PropertyIterator_somDefaultConstAssign;
typedef ExtendedNaming_PropertyIterator*   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultVAssign(ExtendedNaming_PropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultVAssign *somTD_ExtendedNaming_PropertyIterator_somDefaultVAssign;
typedef ExtendedNaming_PropertyIterator*   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDefaultConstVAssign(ExtendedNaming_PropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_PropertyIterator_somDefaultConstVAssign *somTD_ExtendedNaming_PropertyIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somInit(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somInit *somTD_ExtendedNaming_PropertyIterator_somInit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somUninit(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somUninit *somTD_ExtendedNaming_PropertyIterator_somUninit;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somFree(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somFree *somTD_ExtendedNaming_PropertyIterator_somFree;
typedef SOMClass*   SOMLINK somTP_ExtendedNaming_PropertyIterator_somGetClass(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somGetClass *somTD_ExtendedNaming_PropertyIterator_somGetClass;
typedef string   SOMLINK somTP_ExtendedNaming_PropertyIterator_somGetClassName(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somGetClassName *somTD_ExtendedNaming_PropertyIterator_somGetClassName;
typedef long   SOMLINK somTP_ExtendedNaming_PropertyIterator_somGetSize(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somGetSize *somTD_ExtendedNaming_PropertyIterator_somGetSize;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somIsA(ExtendedNaming_PropertyIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_PropertyIterator_somIsA *somTD_ExtendedNaming_PropertyIterator_somIsA;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somIsInstanceOf(ExtendedNaming_PropertyIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_PropertyIterator_somIsInstanceOf *somTD_ExtendedNaming_PropertyIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somRespondsTo(ExtendedNaming_PropertyIterator *somSelf, 
		somId mId);
typedef somTP_ExtendedNaming_PropertyIterator_somRespondsTo *somTD_ExtendedNaming_PropertyIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDispatch(ExtendedNaming_PropertyIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_PropertyIterator_somDispatch *somTD_ExtendedNaming_PropertyIterator_somDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somClassDispatch(ExtendedNaming_PropertyIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_PropertyIterator_somClassDispatch *somTD_ExtendedNaming_PropertyIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somCastObj(ExtendedNaming_PropertyIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_ExtendedNaming_PropertyIterator_somCastObj *somTD_ExtendedNaming_PropertyIterator_somCastObj;
typedef boolean   SOMLINK somTP_ExtendedNaming_PropertyIterator_somResetObj(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somResetObj *somTD_ExtendedNaming_PropertyIterator_somResetObj;
typedef ExtendedNaming_PropertyIterator*   SOMLINK somTP_ExtendedNaming_PropertyIterator_somPrintSelf(ExtendedNaming_PropertyIterator *somSelf);
typedef somTP_ExtendedNaming_PropertyIterator_somPrintSelf *somTD_ExtendedNaming_PropertyIterator_somPrintSelf;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDumpSelf(ExtendedNaming_PropertyIterator *somSelf, 
		long level);
typedef somTP_ExtendedNaming_PropertyIterator_somDumpSelf *somTD_ExtendedNaming_PropertyIterator_somDumpSelf;
typedef void   SOMLINK somTP_ExtendedNaming_PropertyIterator_somDumpSelfInt(ExtendedNaming_PropertyIterator *somSelf, 
		long level);
typedef somTP_ExtendedNaming_PropertyIterator_somDumpSelfInt *somTD_ExtendedNaming_PropertyIterator_somDumpSelfInt;
}

#endif /* ExtendedNaming_PropertyIterator_API */


/*
 * -- The C++ Wrapper Class for ExtendedNaming_PropertyIterator
 */
class ExtendedNaming_PropertyIterator : public SOMObject
{
public:

// ExtendedNaming_PropertyIterator::new creates the class object if necessary, and then uses
// somNewNoInit to allocate memory and create the object.
// Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ExtendedNaming_PropertyIterator) ExtendedNaming_PropertyIteratorNewClass(ExtendedNaming_PropertyIterator_MajorVersion,ExtendedNaming_PropertyIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_ExtendedNaming_PropertyIterator)));
}

// ExtendedNaming_PropertyIterator::delete uses somFree.
void operator delete(void * obj)
{
   if (obj && *(void**)obj)
      ((SOMObject*)obj)->somFree();
}

ExtendedNaming_PropertyIterator& operator=(ExtendedNaming_PropertyIterator& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

ExtendedNaming_PropertyIterator()
{
   if (*(void**)this != (ExtendedNaming_PropertyIteratorCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ExtendedNaming_PropertyIterator(ExtendedNaming_PropertyIterator* fromObj)
{
   if (*(void**)this != (ExtendedNaming_PropertyIteratorCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: next_one */
boolean   next_one(Environment *ev, 
		ExtendedNaming_Property* p)
{
/*
 *  returns the next binding. If there are no more bindings
 *  'false' is returned
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyIterator),
	 ((somTD_ExtendedNaming_PropertyIterator_next_one)(ExtendedNaming_PropertyIteratorClassData.next_one))(((ExtendedNaming_PropertyIterator *)((void *)this)), ev,p)
	);
}


/* method: next_n */
boolean   next_n(Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* pl)
{
/*
 *  returns at most the requested number of bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyIterator),
	 ((somTD_ExtendedNaming_PropertyIterator_next_n)(ExtendedNaming_PropertyIteratorClassData.next_n))(((ExtendedNaming_PropertyIterator *)((void *)this)), ev,howMany,pl)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyIterator),
	 ((somTD_ExtendedNaming_PropertyIterator_destroy)(ExtendedNaming_PropertyIteratorClassData.destroy))(((ExtendedNaming_PropertyIterator *)((void *)this)), ev)
	);
}


/*
 * Reintroduce inherited methods
 */

/* initializer method: somDefaultInit */
void   somDefaultInit(som3InitCtrl* ctrl)
{
/*
 *  A default initializer for a SOM object. Passing a null ctrl
 *  indicates to the receiver that its class is the class of the
 *  object being initialized, whereby the initializer will determine
 *  an appropriate control structure.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl)
	);
}


/* method: somDestruct */
void   somDestruct(octet doFree, 
		som3DestructCtrl* ctrl)
{
/*
 *  The default destructor for a SOM object. A nonzero <doFree>
 *  indicates that the object storage should be freed by the
 *  object's class (via somDeallocate) after uninitialization.
 *  As with somDefaultInit, a null ctrl can be passed.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDestruct)(SOMObjectClassData.somDestruct))(((ExtendedNaming_PropertyIterator *)((void *)this)),doFree,ctrl)
	);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor. Use this to make copies of objects for
 *  calling methods with "by-value" argument semantics.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
ExtendedNaming_PropertyIterator*  somDefaultAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator. Use this to "assign" the state of one
 *  object to another.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstAssign */
ExtendedNaming_PropertyIterator*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultConstAssign)(SOMObjectClassData.somDefaultConstAssign))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultVAssign */
ExtendedNaming_PropertyIterator*  somDefaultVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultVAssign)(SOMObjectClassData.somDefaultVAssign))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstVAssign */
ExtendedNaming_PropertyIterator*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDefaultConstVAssign)(SOMObjectClassData.somDefaultConstVAssign))(((ExtendedNaming_PropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somInit */
void   somInit()
{
/*
 *  Obsolete but still supported. Override somDefaultInit instead of somInit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somInit)(SOMObjectClassData.somInit))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somUninit */
void   somUninit()
{
/*
 *  Obsolete but still supported. Override somDestruct instead of somUninit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somUninit)(SOMObjectClassData.somUninit))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somFree */
void   somFree()
{
/*
 *  The default implementation just calls somDestruct.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somFree)(SOMObjectClassData.somFree))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
/*
 *  Return the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somGetClass)(SOMObjectClassData.somGetClass))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somGetClassName */
string   somGetClassName()
{
/*
 *  Return the name of the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somGetClassName)(SOMObjectClassData.somGetClassName))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somGetSize)(SOMObjectClassData.somGetSize))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver responds to methods
 *  introduced by <aClassObj>, and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somIsA)(SOMObjectClassData.somIsA))(((ExtendedNaming_PropertyIterator *)((void *)this)),aClassObj)
	);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver is an instance of
 *  <aClassObj> and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((ExtendedNaming_PropertyIterator *)((void *)this)),aClassObj)
	);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
/*
 *  Returns 1 (true) if the indicated method can be invoked
 *  on the receiver and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((ExtendedNaming_PropertyIterator *)((void *)this)),mId)
	);
}


/* va_list method: somDispatch */

/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
/* the va_list invocation form */
boolean   SOMObject_somDispatch(somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_PropertyIterator *)((void *)this)),retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_PropertyIterator *)((void *)this)),retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */

/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
/* the va_list invocation form */
boolean   SOMObject_somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_PropertyIterator *)((void *)this)),clsObj,retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_PropertyIterator *)((void *)this)),clsObj,retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* castedCls)
{
/*
 *  Changes the behavior of the target object to that implemented
 *  by castedCls. This is possible when all concrete data in castedCls
 *  is also concrete in the true class of the target object.
 *  Returns true (1) on success, and false (0) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somCastObj)(SOMObjectClassData.somCastObj))(((ExtendedNaming_PropertyIterator *)((void *)this)),castedCls)
	);
}


/* method: somResetObj */
boolean   somResetObj()
{
/*
 *  reset an object to its true class. Returns true always.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somResetObj)(SOMObjectClassData.somResetObj))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somPrintSelf */
ExtendedNaming_PropertyIterator*  somPrintSelf()
{
/*
 *  Uses <SOMOutCharRoutine> to write a brief string with identifying
 *  information about this object.  The default implementation just gives
 *  the object's class name and its address in memory.
 *  <self> is returned.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((ExtendedNaming_PropertyIterator *)((void *)this)))
	);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write a detailed description of this object
 *  and its current state.
 * 
 *  <level> indicates the nesting level for describing compound objects
 *  it must be greater than or equal to zero.  All lines in the
 *  description will be preceeded by <2*level> spaces.
 * 
 *  This routine only actually writes the data that concerns the object
 *  as a whole, such as class, and uses <somDumpSelfInt> to describe
 *  the object's current state.  This approach allows readable
 *  descriptions of compound objects to be constructed.
 * 
 *  Generally it is not necessary to override this method, if it is
 *  overriden it generally must be completely replaced.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((ExtendedNaming_PropertyIterator *)((void *)this)),level)
	);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write in the current state of this object.
 *  Generally this method will need to be overridden.  When overriding
 *  it, begin by calling the parent class form of this method and then
 *  write in a description of your class's instance data. This will
 *  result in a description of all the object's instance data going
 *  from its root ancestor class to its specific class.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_PropertyIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((ExtendedNaming_PropertyIterator *)((void *)this)),level)
	);
}



};   /* ExtendedNaming_PropertyIterator */



#endif       /* SOM_ExtendedNaming_PropertyIterator_xh */

#ifndef SOM_ExtendedNaming_IndexIterator_xh
#define SOM_ExtendedNaming_IndexIterator_xh


#define ExtendedNaming_IndexIterator_MajorVersion 3
#define ExtendedNaming_IndexIterator_MinorVersion 0
class ExtendedNaming_IndexIterator;

/* Parents */
#ifndef SOM_SOMObject_xh
#ifdef SOMLOCALINCLUDES
#include "somobj.xh"
#else
#include <somobj.xh>
#endif
#endif

/* Useful C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

#ifndef ExtendedNaming_IndexIterator_API
#define ExtendedNaming_IndexIterator_API
/*
 * -- The Class API
 */

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

/*
 * A function to create the ExtendedNaming_IndexIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnaming SOMClass * SOMLINK ExtendedNaming_IndexIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct ExtendedNaming_IndexIteratorClassDataStructure {
	SOMClass *classObject;
	somMToken next_one;
	somMToken next_n;
	somMToken destroy;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_IndexIteratorClassData;
SOMEXTERN struct ExtendedNaming_IndexIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_IndexIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_ExtendedNaming_IndexIterator (ExtendedNaming_IndexIteratorClassData.classObject)
#ifndef SOMGD_ExtendedNaming_IndexIterator
    #if (defined(_ExtendedNaming_IndexIterator) || defined(__ExtendedNaming_IndexIterator))
        #undef _ExtendedNaming_IndexIterator
        #undef __ExtendedNaming_IndexIterator
        #define SOMGD_ExtendedNaming_IndexIterator 1
    #else
        #define _ExtendedNaming_IndexIterator _SOMCLASS_ExtendedNaming_IndexIterator
    #endif /* _ExtendedNaming_IndexIterator */
#endif /* SOMGD_ExtendedNaming_IndexIterator */
#define ExtendedNaming_IndexIterator_classObj _SOMCLASS_ExtendedNaming_IndexIterator
#define _SOMMTOKEN_ExtendedNaming_IndexIterator(method) ((somMToken)ExtendedNaming_IndexIteratorClassData.method)

/*
 * -- Typedefs for ExtendedNaming_IndexIterator Method Procedures
 */
SOMEXTERN {
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_next_one(ExtendedNaming_IndexIterator *somSelf, Environment *ev, 
		ExtendedNaming_IndexDescriptor* p);
typedef somTP_ExtendedNaming_IndexIterator_next_one *somTD_ExtendedNaming_IndexIterator_next_one;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_next_n(ExtendedNaming_IndexIterator *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_IndexDescriptorList* il);
typedef somTP_ExtendedNaming_IndexIterator_next_n *somTD_ExtendedNaming_IndexIterator_next_n;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_destroy(ExtendedNaming_IndexIterator *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_IndexIterator_destroy *somTD_ExtendedNaming_IndexIterator_destroy;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultInit(ExtendedNaming_IndexIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultInit *somTD_ExtendedNaming_IndexIterator_somDefaultInit;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDestruct(ExtendedNaming_IndexIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_ExtendedNaming_IndexIterator_somDestruct *somTD_ExtendedNaming_IndexIterator_somDestruct;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultCopyInit(ExtendedNaming_IndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultCopyInit *somTD_ExtendedNaming_IndexIterator_somDefaultCopyInit;
typedef ExtendedNaming_IndexIterator*   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultAssign(ExtendedNaming_IndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultAssign *somTD_ExtendedNaming_IndexIterator_somDefaultAssign;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultConstCopyInit(ExtendedNaming_IndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultConstCopyInit *somTD_ExtendedNaming_IndexIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultVCopyInit(ExtendedNaming_IndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultVCopyInit *somTD_ExtendedNaming_IndexIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultConstVCopyInit(ExtendedNaming_IndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultConstVCopyInit *somTD_ExtendedNaming_IndexIterator_somDefaultConstVCopyInit;
typedef ExtendedNaming_IndexIterator*   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultConstAssign(ExtendedNaming_IndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultConstAssign *somTD_ExtendedNaming_IndexIterator_somDefaultConstAssign;
typedef ExtendedNaming_IndexIterator*   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultVAssign(ExtendedNaming_IndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultVAssign *somTD_ExtendedNaming_IndexIterator_somDefaultVAssign;
typedef ExtendedNaming_IndexIterator*   SOMLINK somTP_ExtendedNaming_IndexIterator_somDefaultConstVAssign(ExtendedNaming_IndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_IndexIterator_somDefaultConstVAssign *somTD_ExtendedNaming_IndexIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somInit(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somInit *somTD_ExtendedNaming_IndexIterator_somInit;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somUninit(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somUninit *somTD_ExtendedNaming_IndexIterator_somUninit;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somFree(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somFree *somTD_ExtendedNaming_IndexIterator_somFree;
typedef SOMClass*   SOMLINK somTP_ExtendedNaming_IndexIterator_somGetClass(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somGetClass *somTD_ExtendedNaming_IndexIterator_somGetClass;
typedef string   SOMLINK somTP_ExtendedNaming_IndexIterator_somGetClassName(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somGetClassName *somTD_ExtendedNaming_IndexIterator_somGetClassName;
typedef long   SOMLINK somTP_ExtendedNaming_IndexIterator_somGetSize(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somGetSize *somTD_ExtendedNaming_IndexIterator_somGetSize;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somIsA(ExtendedNaming_IndexIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_IndexIterator_somIsA *somTD_ExtendedNaming_IndexIterator_somIsA;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somIsInstanceOf(ExtendedNaming_IndexIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_IndexIterator_somIsInstanceOf *somTD_ExtendedNaming_IndexIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somRespondsTo(ExtendedNaming_IndexIterator *somSelf, 
		somId mId);
typedef somTP_ExtendedNaming_IndexIterator_somRespondsTo *somTD_ExtendedNaming_IndexIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somDispatch(ExtendedNaming_IndexIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_IndexIterator_somDispatch *somTD_ExtendedNaming_IndexIterator_somDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somClassDispatch(ExtendedNaming_IndexIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_IndexIterator_somClassDispatch *somTD_ExtendedNaming_IndexIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somCastObj(ExtendedNaming_IndexIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_ExtendedNaming_IndexIterator_somCastObj *somTD_ExtendedNaming_IndexIterator_somCastObj;
typedef boolean   SOMLINK somTP_ExtendedNaming_IndexIterator_somResetObj(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somResetObj *somTD_ExtendedNaming_IndexIterator_somResetObj;
typedef ExtendedNaming_IndexIterator*   SOMLINK somTP_ExtendedNaming_IndexIterator_somPrintSelf(ExtendedNaming_IndexIterator *somSelf);
typedef somTP_ExtendedNaming_IndexIterator_somPrintSelf *somTD_ExtendedNaming_IndexIterator_somPrintSelf;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDumpSelf(ExtendedNaming_IndexIterator *somSelf, 
		long level);
typedef somTP_ExtendedNaming_IndexIterator_somDumpSelf *somTD_ExtendedNaming_IndexIterator_somDumpSelf;
typedef void   SOMLINK somTP_ExtendedNaming_IndexIterator_somDumpSelfInt(ExtendedNaming_IndexIterator *somSelf, 
		long level);
typedef somTP_ExtendedNaming_IndexIterator_somDumpSelfInt *somTD_ExtendedNaming_IndexIterator_somDumpSelfInt;
}

#endif /* ExtendedNaming_IndexIterator_API */


/*
 * -- The C++ Wrapper Class for ExtendedNaming_IndexIterator
 */
class ExtendedNaming_IndexIterator : public SOMObject
{
public:

// ExtendedNaming_IndexIterator::new creates the class object if necessary, and then uses
// somNewNoInit to allocate memory and create the object.
// Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ExtendedNaming_IndexIterator) ExtendedNaming_IndexIteratorNewClass(ExtendedNaming_IndexIterator_MajorVersion,ExtendedNaming_IndexIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_ExtendedNaming_IndexIterator)));
}

// ExtendedNaming_IndexIterator::delete uses somFree.
void operator delete(void * obj)
{
   if (obj && *(void**)obj)
      ((SOMObject*)obj)->somFree();
}

ExtendedNaming_IndexIterator& operator=(ExtendedNaming_IndexIterator& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

ExtendedNaming_IndexIterator()
{
   if (*(void**)this != (ExtendedNaming_IndexIteratorCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ExtendedNaming_IndexIterator(ExtendedNaming_IndexIterator* fromObj)
{
   if (*(void**)this != (ExtendedNaming_IndexIteratorCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: next_one */
boolean   next_one(Environment *ev, 
		ExtendedNaming_IndexDescriptor* p)
{
/*
 *  returns the next binding. If there are no more bindings
 *  'false' is returned
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_IndexIterator),
	 ((somTD_ExtendedNaming_IndexIterator_next_one)(ExtendedNaming_IndexIteratorClassData.next_one))(((ExtendedNaming_IndexIterator *)((void *)this)), ev,p)
	);
}


/* method: next_n */
boolean   next_n(Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_IndexDescriptorList* il)
{
/*
 *  returns at most the requested number of bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_IndexIterator),
	 ((somTD_ExtendedNaming_IndexIterator_next_n)(ExtendedNaming_IndexIteratorClassData.next_n))(((ExtendedNaming_IndexIterator *)((void *)this)), ev,howMany,il)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_IndexIterator),
	 ((somTD_ExtendedNaming_IndexIterator_destroy)(ExtendedNaming_IndexIteratorClassData.destroy))(((ExtendedNaming_IndexIterator *)((void *)this)), ev)
	);
}


/*
 * Reintroduce inherited methods
 */

/* initializer method: somDefaultInit */
void   somDefaultInit(som3InitCtrl* ctrl)
{
/*
 *  A default initializer for a SOM object. Passing a null ctrl
 *  indicates to the receiver that its class is the class of the
 *  object being initialized, whereby the initializer will determine
 *  an appropriate control structure.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl)
	);
}


/* method: somDestruct */
void   somDestruct(octet doFree, 
		som3DestructCtrl* ctrl)
{
/*
 *  The default destructor for a SOM object. A nonzero <doFree>
 *  indicates that the object storage should be freed by the
 *  object's class (via somDeallocate) after uninitialization.
 *  As with somDefaultInit, a null ctrl can be passed.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDestruct)(SOMObjectClassData.somDestruct))(((ExtendedNaming_IndexIterator *)((void *)this)),doFree,ctrl)
	);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor. Use this to make copies of objects for
 *  calling methods with "by-value" argument semantics.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
ExtendedNaming_IndexIterator*  somDefaultAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator. Use this to "assign" the state of one
 *  object to another.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstAssign */
ExtendedNaming_IndexIterator*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultConstAssign)(SOMObjectClassData.somDefaultConstAssign))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultVAssign */
ExtendedNaming_IndexIterator*  somDefaultVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultVAssign)(SOMObjectClassData.somDefaultVAssign))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstVAssign */
ExtendedNaming_IndexIterator*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDefaultConstVAssign)(SOMObjectClassData.somDefaultConstVAssign))(((ExtendedNaming_IndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somInit */
void   somInit()
{
/*
 *  Obsolete but still supported. Override somDefaultInit instead of somInit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somInit)(SOMObjectClassData.somInit))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somUninit */
void   somUninit()
{
/*
 *  Obsolete but still supported. Override somDestruct instead of somUninit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somUninit)(SOMObjectClassData.somUninit))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somFree */
void   somFree()
{
/*
 *  The default implementation just calls somDestruct.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somFree)(SOMObjectClassData.somFree))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
/*
 *  Return the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somGetClass)(SOMObjectClassData.somGetClass))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somGetClassName */
string   somGetClassName()
{
/*
 *  Return the name of the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somGetClassName)(SOMObjectClassData.somGetClassName))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somGetSize)(SOMObjectClassData.somGetSize))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver responds to methods
 *  introduced by <aClassObj>, and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somIsA)(SOMObjectClassData.somIsA))(((ExtendedNaming_IndexIterator *)((void *)this)),aClassObj)
	);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver is an instance of
 *  <aClassObj> and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((ExtendedNaming_IndexIterator *)((void *)this)),aClassObj)
	);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
/*
 *  Returns 1 (true) if the indicated method can be invoked
 *  on the receiver and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((ExtendedNaming_IndexIterator *)((void *)this)),mId)
	);
}


/* va_list method: somDispatch */

/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
/* the va_list invocation form */
boolean   SOMObject_somDispatch(somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_IndexIterator *)((void *)this)),retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_IndexIterator *)((void *)this)),retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */

/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
/* the va_list invocation form */
boolean   SOMObject_somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_IndexIterator *)((void *)this)),clsObj,retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_IndexIterator *)((void *)this)),clsObj,retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* castedCls)
{
/*
 *  Changes the behavior of the target object to that implemented
 *  by castedCls. This is possible when all concrete data in castedCls
 *  is also concrete in the true class of the target object.
 *  Returns true (1) on success, and false (0) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somCastObj)(SOMObjectClassData.somCastObj))(((ExtendedNaming_IndexIterator *)((void *)this)),castedCls)
	);
}


/* method: somResetObj */
boolean   somResetObj()
{
/*
 *  reset an object to its true class. Returns true always.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somResetObj)(SOMObjectClassData.somResetObj))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somPrintSelf */
ExtendedNaming_IndexIterator*  somPrintSelf()
{
/*
 *  Uses <SOMOutCharRoutine> to write a brief string with identifying
 *  information about this object.  The default implementation just gives
 *  the object's class name and its address in memory.
 *  <self> is returned.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((ExtendedNaming_IndexIterator *)((void *)this)))
	);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write a detailed description of this object
 *  and its current state.
 * 
 *  <level> indicates the nesting level for describing compound objects
 *  it must be greater than or equal to zero.  All lines in the
 *  description will be preceeded by <2*level> spaces.
 * 
 *  This routine only actually writes the data that concerns the object
 *  as a whole, such as class, and uses <somDumpSelfInt> to describe
 *  the object's current state.  This approach allows readable
 *  descriptions of compound objects to be constructed.
 * 
 *  Generally it is not necessary to override this method, if it is
 *  overriden it generally must be completely replaced.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((ExtendedNaming_IndexIterator *)((void *)this)),level)
	);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write in the current state of this object.
 *  Generally this method will need to be overridden.  When overriding
 *  it, begin by calling the parent class form of this method and then
 *  write in a description of your class's instance data. This will
 *  result in a description of all the object's instance data going
 *  from its root ancestor class to its specific class.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_IndexIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((ExtendedNaming_IndexIterator *)((void *)this)),level)
	);
}



};   /* ExtendedNaming_IndexIterator */



#endif       /* SOM_ExtendedNaming_IndexIterator_xh */

#ifndef SOM_ExtendedNaming_ExtendedNamingContext_xh
#define SOM_ExtendedNaming_ExtendedNamingContext_xh


#define ExtendedNaming_ExtendedNamingContext_MajorVersion 3
#define ExtendedNaming_ExtendedNamingContext_MinorVersion 0
class ExtendedNaming_ExtendedNamingContext;

/* Parents */
#ifndef SOM_CosNaming_NamingContext_xh
#ifdef SOMLOCALINCLUDES
#include "naming.xh"
#else
#include <naming.xh>
#endif
#endif

/* Useful C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

#ifndef ExtendedNaming_ExtendedNamingContext_API
#define ExtendedNaming_ExtendedNamingContext_API
/*
 * -- The Class API
 */

/*
 * Start of bindings for IDL types
 */

typedef
string  ExtendedNaming_ExtendedNamingContext_Constraint;
typedef
char * ExtendedNaming_ExtendedNamingContext_Strings;
#define ex_ExtendedNaming_ExtendedNamingContext_InvalidPropertyName "::ExtendedNaming::ExtendedNamingContext::InvalidPropertyName"
#define ExtendedNaming_ExtendedNamingContext_InvalidPropertyName NULL
#define ex_ExtendedNaming_ExtendedNamingContext_NotSupported "::ExtendedNaming::ExtendedNamingContext::NotSupported"
#define ExtendedNaming_ExtendedNamingContext_NotSupported NULL
#define ex_ExtendedNaming_ExtendedNamingContext_ConflictingPropertyName "::ExtendedNaming::ExtendedNamingContext::ConflictingPropertyName"
#define ExtendedNaming_ExtendedNamingContext_ConflictingPropertyName NULL
#ifndef _IDL_SEQUENCE_string_defined
#define _IDL_SEQUENCE_string_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    string *_buffer;
} _IDL_SEQUENCE_string;
#endif /* _IDL_SEQUENCE_string_defined */ 
#define ex_ExtendedNaming_ExtendedNamingContext_PropertyNotFound "::ExtendedNaming::ExtendedNamingContext::PropertyNotFound"
typedef
struct ExtendedNaming_ExtendedNamingContext_PropertyNotFound {
_IDL_SEQUENCE_string property_name;
} ExtendedNaming_ExtendedNamingContext_PropertyNotFound;
#define ex_ExtendedNaming_ExtendedNamingContext_NonSharableProperties "::ExtendedNaming::ExtendedNamingContext::NonSharableProperties"
#define ExtendedNaming_ExtendedNamingContext_NonSharableProperties NULL
#define ex_ExtendedNaming_ExtendedNamingContext_PropertiesNotShared "::ExtendedNaming::ExtendedNamingContext::PropertiesNotShared"
#define ExtendedNaming_ExtendedNamingContext_PropertiesNotShared NULL
#define ex_ExtendedNaming_ExtendedNamingContext_IllegalConstraintExpression "::ExtendedNaming::ExtendedNamingContext::IllegalConstraintExpression"
#define ExtendedNaming_ExtendedNamingContext_IllegalConstraintExpression NULL
#define ex_ExtendedNaming_ExtendedNamingContext_BindingNotFound "::ExtendedNaming::ExtendedNamingContext::BindingNotFound"
#define ExtendedNaming_ExtendedNamingContext_BindingNotFound NULL
#ifndef _IDL_SEQUENCE_TypeCode_defined
#define _IDL_SEQUENCE_TypeCode_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    TypeCode *_buffer;
} _IDL_SEQUENCE_TypeCode;
#endif /* _IDL_SEQUENCE_TypeCode_defined */ 

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_Constraint
    #ifdef Constraint
        #undef Constraint
        #define SOMTGD_Constraint 1
    #else
        #define Constraint ExtendedNaming_ExtendedNamingContext_Constraint
    #endif /* Constraint */
#endif /* SOMTGD_Constraint */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_Strings
    #ifdef Strings
        #undef Strings
        #define SOMTGD_Strings 1
    #else
        #define Strings ExtendedNaming_ExtendedNamingContext_Strings
    #endif /* Strings */
#endif /* SOMTGD_Strings */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_ex_InvalidPropertyName
    #ifdef ex_InvalidPropertyName
        #undef ex_InvalidPropertyName
        #define SOMTGD_ex_InvalidPropertyName 1
    #else
        #define ex_InvalidPropertyName ex_ExtendedNaming_ExtendedNamingContext_InvalidPropertyName
    #endif /* ex_InvalidPropertyName */
#endif /* SOMTGD_ex_InvalidPropertyName */
#ifndef SOMTGD_InvalidPropertyName
    #ifdef InvalidPropertyName
        #undef InvalidPropertyName
        #define SOMTGD_InvalidPropertyName 1
    #else
        #define InvalidPropertyName ExtendedNaming_ExtendedNamingContext_InvalidPropertyName
    #endif /* InvalidPropertyName */
#endif /* SOMTGD_InvalidPropertyName */
#ifndef SOMTGD_ex_NotSupported
    #ifdef ex_NotSupported
        #undef ex_NotSupported
        #define SOMTGD_ex_NotSupported 1
    #else
        #define ex_NotSupported ex_ExtendedNaming_ExtendedNamingContext_NotSupported
    #endif /* ex_NotSupported */
#endif /* SOMTGD_ex_NotSupported */
#ifndef SOMTGD_NotSupported
    #ifdef NotSupported
        #undef NotSupported
        #define SOMTGD_NotSupported 1
    #else
        #define NotSupported ExtendedNaming_ExtendedNamingContext_NotSupported
    #endif /* NotSupported */
#endif /* SOMTGD_NotSupported */
#ifndef SOMTGD_ex_ConflictingPropertyName
    #ifdef ex_ConflictingPropertyName
        #undef ex_ConflictingPropertyName
        #define SOMTGD_ex_ConflictingPropertyName 1
    #else
        #define ex_ConflictingPropertyName ex_ExtendedNaming_ExtendedNamingContext_ConflictingPropertyName
    #endif /* ex_ConflictingPropertyName */
#endif /* SOMTGD_ex_ConflictingPropertyName */
#ifndef SOMTGD_ConflictingPropertyName
    #ifdef ConflictingPropertyName
        #undef ConflictingPropertyName
        #define SOMTGD_ConflictingPropertyName 1
    #else
        #define ConflictingPropertyName ExtendedNaming_ExtendedNamingContext_ConflictingPropertyName
    #endif /* ConflictingPropertyName */
#endif /* SOMTGD_ConflictingPropertyName */
#ifndef SOMTGD_ex_PropertyNotFound
    #ifdef ex_PropertyNotFound
        #undef ex_PropertyNotFound
        #define SOMTGD_ex_PropertyNotFound 1
    #else
        #define ex_PropertyNotFound ex_ExtendedNaming_ExtendedNamingContext_PropertyNotFound
    #endif /* ex_PropertyNotFound */
#endif /* SOMTGD_ex_PropertyNotFound */
#ifndef SOMTGD_PropertyNotFound
    #ifdef PropertyNotFound
        #undef PropertyNotFound
        #define SOMTGD_PropertyNotFound 1
    #else
        #define PropertyNotFound ExtendedNaming_ExtendedNamingContext_PropertyNotFound
    #endif /* PropertyNotFound */
#endif /* SOMTGD_PropertyNotFound */
#ifndef SOMTGD_ex_NonSharableProperties
    #ifdef ex_NonSharableProperties
        #undef ex_NonSharableProperties
        #define SOMTGD_ex_NonSharableProperties 1
    #else
        #define ex_NonSharableProperties ex_ExtendedNaming_ExtendedNamingContext_NonSharableProperties
    #endif /* ex_NonSharableProperties */
#endif /* SOMTGD_ex_NonSharableProperties */
#ifndef SOMTGD_NonSharableProperties
    #ifdef NonSharableProperties
        #undef NonSharableProperties
        #define SOMTGD_NonSharableProperties 1
    #else
        #define NonSharableProperties ExtendedNaming_ExtendedNamingContext_NonSharableProperties
    #endif /* NonSharableProperties */
#endif /* SOMTGD_NonSharableProperties */
#ifndef SOMTGD_ex_PropertiesNotShared
    #ifdef ex_PropertiesNotShared
        #undef ex_PropertiesNotShared
        #define SOMTGD_ex_PropertiesNotShared 1
    #else
        #define ex_PropertiesNotShared ex_ExtendedNaming_ExtendedNamingContext_PropertiesNotShared
    #endif /* ex_PropertiesNotShared */
#endif /* SOMTGD_ex_PropertiesNotShared */
#ifndef SOMTGD_PropertiesNotShared
    #ifdef PropertiesNotShared
        #undef PropertiesNotShared
        #define SOMTGD_PropertiesNotShared 1
    #else
        #define PropertiesNotShared ExtendedNaming_ExtendedNamingContext_PropertiesNotShared
    #endif /* PropertiesNotShared */
#endif /* SOMTGD_PropertiesNotShared */
#ifndef SOMTGD_ex_IllegalConstraintExpression
    #ifdef ex_IllegalConstraintExpression
        #undef ex_IllegalConstraintExpression
        #define SOMTGD_ex_IllegalConstraintExpression 1
    #else
        #define ex_IllegalConstraintExpression ex_ExtendedNaming_ExtendedNamingContext_IllegalConstraintExpression
    #endif /* ex_IllegalConstraintExpression */
#endif /* SOMTGD_ex_IllegalConstraintExpression */
#ifndef SOMTGD_IllegalConstraintExpression
    #ifdef IllegalConstraintExpression
        #undef IllegalConstraintExpression
        #define SOMTGD_IllegalConstraintExpression 1
    #else
        #define IllegalConstraintExpression ExtendedNaming_ExtendedNamingContext_IllegalConstraintExpression
    #endif /* IllegalConstraintExpression */
#endif /* SOMTGD_IllegalConstraintExpression */
#ifndef SOMTGD_ex_BindingNotFound
    #ifdef ex_BindingNotFound
        #undef ex_BindingNotFound
        #define SOMTGD_ex_BindingNotFound 1
    #else
        #define ex_BindingNotFound ex_ExtendedNaming_ExtendedNamingContext_BindingNotFound
    #endif /* ex_BindingNotFound */
#endif /* SOMTGD_ex_BindingNotFound */
#ifndef SOMTGD_BindingNotFound
    #ifdef BindingNotFound
        #undef BindingNotFound
        #define SOMTGD_BindingNotFound 1
    #else
        #define BindingNotFound ExtendedNaming_ExtendedNamingContext_BindingNotFound
    #endif /* BindingNotFound */
#endif /* SOMTGD_BindingNotFound */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */

/*
 * A function to create the ExtendedNaming_ExtendedNamingContext class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnaming SOMClass * SOMLINK ExtendedNaming_ExtendedNamingContextNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct ExtendedNaming_ExtendedNamingContextClassDataStructure {
	SOMClass *classObject;
	somMToken get_features_supported;
	somMToken add_property;
	somMToken add_properties;
	somMToken bind_with_properties;
	somMToken bind_context_with_properties;
	somMToken rebind_with_properties;
	somMToken rebind_context_with_properties;
	somMToken share_property;
	somMToken share_properties;
	somMToken unshare_property;
	somMToken unshare_properties;
	somMToken list_properties;
	somMToken get_property;
	somMToken get_properties;
	somMToken get_all_properties;
	somMToken resolve_with_property;
	somMToken resolve_with_properties;
	somMToken resolve_with_all_properties;
	somMToken remove_property;
	somMToken remove_properties;
	somMToken remove_all_properties;
	somMToken find_any;
	somMToken find_all;
	somMToken add_index;
	somMToken list_indexes;
	somMToken remove_index;
	somMToken _get_allowed_object_types;
	somMToken find_any_name_binding;
	somMToken _set_allowed_object_types;
	somMToken _get_allowed_property_types;
	somMToken _set_allowed_property_types;
	somMToken _get_allowed_property_names;
	somMToken _set_allowed_property_names;
	somMToken _get_shared_property_names;
	somMToken _set_shared_property_names;
	somMToken _get_shared_property_types;
	somMToken _set_shared_property_types;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_ExtendedNamingContextClassData;
SOMEXTERN struct ExtendedNaming_ExtendedNamingContextCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnaming ExtendedNaming_ExtendedNamingContextCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_ExtendedNaming_ExtendedNamingContext (ExtendedNaming_ExtendedNamingContextClassData.classObject)
#ifndef SOMGD_ExtendedNaming_ExtendedNamingContext
    #if (defined(_ExtendedNaming_ExtendedNamingContext) || defined(__ExtendedNaming_ExtendedNamingContext))
        #undef _ExtendedNaming_ExtendedNamingContext
        #undef __ExtendedNaming_ExtendedNamingContext
        #define SOMGD_ExtendedNaming_ExtendedNamingContext 1
    #else
        #define _ExtendedNaming_ExtendedNamingContext _SOMCLASS_ExtendedNaming_ExtendedNamingContext
    #endif /* _ExtendedNaming_ExtendedNamingContext */
#endif /* SOMGD_ExtendedNaming_ExtendedNamingContext */
#define ExtendedNaming_ExtendedNamingContext_classObj _SOMCLASS_ExtendedNaming_ExtendedNamingContext
#define _SOMMTOKEN_ExtendedNaming_ExtendedNamingContext(method) ((somMToken)ExtendedNaming_ExtendedNamingContextClassData.method)

/*
 * -- Typedefs for ExtendedNaming_ExtendedNamingContext Method Procedures
 */
SOMEXTERN {
typedef _IDL_SEQUENCE_TypeCode   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext__get_allowed_object_types(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext__get_allowed_object_types *somTD_ExtendedNaming_ExtendedNamingContext__get_allowed_object_types;
typedef _IDL_SEQUENCE_TypeCode   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext__get_allowed_property_types(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext__get_allowed_property_types *somTD_ExtendedNaming_ExtendedNamingContext__get_allowed_property_types;
typedef _IDL_SEQUENCE_string   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext__get_allowed_property_names(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext__get_allowed_property_names *somTD_ExtendedNaming_ExtendedNamingContext__get_allowed_property_names;
typedef _IDL_SEQUENCE_TypeCode   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext__get_shared_property_types(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext__get_shared_property_types *somTD_ExtendedNaming_ExtendedNamingContext__get_shared_property_types;
typedef _IDL_SEQUENCE_string   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext__get_shared_property_names(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext__get_shared_property_names *somTD_ExtendedNaming_ExtendedNamingContext__get_shared_property_names;
typedef unsigned short   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_get_features_supported(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext_get_features_supported *somTD_ExtendedNaming_ExtendedNamingContext_get_features_supported;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_add_property(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_Property* prop);
typedef somTP_ExtendedNaming_ExtendedNamingContext_add_property *somTD_ExtendedNaming_ExtendedNamingContext_add_property;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_add_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_PropertyList* props);
typedef somTP_ExtendedNaming_ExtendedNamingContext_add_properties *somTD_ExtendedNaming_ExtendedNamingContext_add_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_bind_with_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj, 
		ExtendedNaming_PropertyList* prop);
typedef somTP_ExtendedNaming_ExtendedNamingContext_bind_with_properties *somTD_ExtendedNaming_ExtendedNamingContext_bind_with_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_bind_context_with_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_ExtendedNamingContext* obj, 
		ExtendedNaming_PropertyList* props);
typedef somTP_ExtendedNaming_ExtendedNamingContext_bind_context_with_properties *somTD_ExtendedNaming_ExtendedNamingContext_bind_context_with_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_rebind_with_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj, 
		ExtendedNaming_PropertyList* prop);
typedef somTP_ExtendedNaming_ExtendedNamingContext_rebind_with_properties *somTD_ExtendedNaming_ExtendedNamingContext_rebind_with_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_rebind_context_with_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_ExtendedNamingContext* obj, 
		ExtendedNaming_PropertyList* props);
typedef somTP_ExtendedNaming_ExtendedNamingContext_rebind_context_with_properties *somTD_ExtendedNaming_ExtendedNamingContext_rebind_context_with_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_share_property(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* target_n, 
		ExtendedNaming_ExtendedNamingContext* source_enc, 
		CosNaming_Name* source_n, 
		CosNaming_Istring pname);
typedef somTP_ExtendedNaming_ExtendedNamingContext_share_property *somTD_ExtendedNaming_ExtendedNamingContext_share_property;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_share_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* target_n, 
		ExtendedNaming_ExtendedNamingContext* source_enc, 
		CosNaming_Name* source_n, 
		ExtendedNaming_IList* pnames);
typedef somTP_ExtendedNaming_ExtendedNamingContext_share_properties *somTD_ExtendedNaming_ExtendedNamingContext_share_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_unshare_property(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring property_name);
typedef somTP_ExtendedNaming_ExtendedNamingContext_unshare_property *somTD_ExtendedNaming_ExtendedNamingContext_unshare_property;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_unshare_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_IList* pnames);
typedef somTP_ExtendedNaming_ExtendedNamingContext_unshare_properties *somTD_ExtendedNaming_ExtendedNamingContext_unshare_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_list_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyBindingList* pbl, 
		ExtendedNaming_PropertyBindingIterator** rest);
typedef somTP_ExtendedNaming_ExtendedNamingContext_list_properties *somTD_ExtendedNaming_ExtendedNamingContext_list_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_get_property(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring pn, 
		ExtendedNaming_Property* prop);
typedef somTP_ExtendedNaming_ExtendedNamingContext_get_property *somTD_ExtendedNaming_ExtendedNamingContext_get_property;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_get_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_IList* inames, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_ExtendedNaming_ExtendedNamingContext_get_properties *somTD_ExtendedNaming_ExtendedNamingContext_get_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_get_all_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_ExtendedNaming_ExtendedNamingContext_get_all_properties *somTD_ExtendedNaming_ExtendedNamingContext_get_all_properties;
typedef SOMObject*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_resolve_with_property(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring prop, 
		any* v);
typedef somTP_ExtendedNaming_ExtendedNamingContext_resolve_with_property *somTD_ExtendedNaming_ExtendedNamingContext_resolve_with_property;
typedef SOMObject*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_resolve_with_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_IList* inames, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_ExtendedNaming_ExtendedNamingContext_resolve_with_properties *somTD_ExtendedNaming_ExtendedNamingContext_resolve_with_properties;
typedef SOMObject*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_resolve_with_all_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_ExtendedNaming_ExtendedNamingContext_resolve_with_all_properties *somTD_ExtendedNaming_ExtendedNamingContext_resolve_with_all_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_remove_property(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring prop);
typedef somTP_ExtendedNaming_ExtendedNamingContext_remove_property *somTD_ExtendedNaming_ExtendedNamingContext_remove_property;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_remove_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_IList* plist);
typedef somTP_ExtendedNaming_ExtendedNamingContext_remove_properties *somTD_ExtendedNaming_ExtendedNamingContext_remove_properties;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_remove_all_properties(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_ExtendedNaming_ExtendedNamingContext_remove_all_properties *somTD_ExtendedNaming_ExtendedNamingContext_remove_all_properties;
typedef SOMObject*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_find_any(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance);
typedef somTP_ExtendedNaming_ExtendedNamingContext_find_any *somTD_ExtendedNaming_ExtendedNamingContext_find_any;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_find_all(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance, 
		unsigned long howMany, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator** bi);
typedef somTP_ExtendedNaming_ExtendedNamingContext_find_all *somTD_ExtendedNaming_ExtendedNamingContext_find_all;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_find_any_name_binding(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance, 
		CosNaming_Binding* bi);
typedef somTP_ExtendedNaming_ExtendedNamingContext_find_any_name_binding *somTD_ExtendedNaming_ExtendedNamingContext_find_any_name_binding;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_add_index(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		ExtendedNaming_IndexDescriptor* i);
typedef somTP_ExtendedNaming_ExtendedNamingContext_add_index *somTD_ExtendedNaming_ExtendedNamingContext_add_index;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_list_indexes(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_IndexDescriptorList* il, 
		ExtendedNaming_IndexIterator** rest);
typedef somTP_ExtendedNaming_ExtendedNamingContext_list_indexes *somTD_ExtendedNaming_ExtendedNamingContext_list_indexes;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_remove_index(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		ExtendedNaming_IndexDescriptor* i);
typedef somTP_ExtendedNaming_ExtendedNamingContext_remove_index *somTD_ExtendedNaming_ExtendedNamingContext_remove_index;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_bind(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_bind *somTD_ExtendedNaming_ExtendedNamingContext_bind;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_rebind(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_rebind *somTD_ExtendedNaming_ExtendedNamingContext_rebind;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_bind_context(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext* nc);
typedef somTP_ExtendedNaming_ExtendedNamingContext_bind_context *somTD_ExtendedNaming_ExtendedNamingContext_bind_context;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_rebind_context(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext* nc);
typedef somTP_ExtendedNaming_ExtendedNamingContext_rebind_context *somTD_ExtendedNaming_ExtendedNamingContext_rebind_context;
typedef SOMObject*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_resolve(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_ExtendedNaming_ExtendedNamingContext_resolve *somTD_ExtendedNaming_ExtendedNamingContext_resolve;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_unbind(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_ExtendedNaming_ExtendedNamingContext_unbind *somTD_ExtendedNaming_ExtendedNamingContext_unbind;
typedef CosNaming_NamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_new_context(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext_new_context *somTD_ExtendedNaming_ExtendedNamingContext_new_context;
typedef CosNaming_NamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_bind_new_context(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_ExtendedNaming_ExtendedNamingContext_bind_new_context *somTD_ExtendedNaming_ExtendedNamingContext_bind_new_context;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_destroy(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev);
typedef somTP_ExtendedNaming_ExtendedNamingContext_destroy *somTD_ExtendedNaming_ExtendedNamingContext_destroy;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_list(ExtendedNaming_ExtendedNamingContext *somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator** bi);
typedef somTP_ExtendedNaming_ExtendedNamingContext_list *somTD_ExtendedNaming_ExtendedNamingContext_list;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultInit(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultInit *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultInit;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDestruct(ExtendedNaming_ExtendedNamingContext *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDestruct *somTD_ExtendedNaming_ExtendedNamingContext_somDestruct;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultCopyInit(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultCopyInit *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultCopyInit;
typedef ExtendedNaming_ExtendedNamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultAssign(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultAssign *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultAssign;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstCopyInit(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstCopyInit *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultVCopyInit(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultVCopyInit *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstVCopyInit(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstVCopyInit *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstVCopyInit;
typedef ExtendedNaming_ExtendedNamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstAssign(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstAssign *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstAssign;
typedef ExtendedNaming_ExtendedNamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultVAssign(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultVAssign *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultVAssign;
typedef ExtendedNaming_ExtendedNamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstVAssign(ExtendedNaming_ExtendedNamingContext *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDefaultConstVAssign *somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somInit(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somInit *somTD_ExtendedNaming_ExtendedNamingContext_somInit;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somUninit(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somUninit *somTD_ExtendedNaming_ExtendedNamingContext_somUninit;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somFree(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somFree *somTD_ExtendedNaming_ExtendedNamingContext_somFree;
typedef SOMClass*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somGetClass(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somGetClass *somTD_ExtendedNaming_ExtendedNamingContext_somGetClass;
typedef string   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somGetClassName(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somGetClassName *somTD_ExtendedNaming_ExtendedNamingContext_somGetClassName;
typedef long   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somGetSize(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somGetSize *somTD_ExtendedNaming_ExtendedNamingContext_somGetSize;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somIsA(ExtendedNaming_ExtendedNamingContext *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somIsA *somTD_ExtendedNaming_ExtendedNamingContext_somIsA;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somIsInstanceOf(ExtendedNaming_ExtendedNamingContext *somSelf, 
		SOMClass* aClassObj);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somIsInstanceOf *somTD_ExtendedNaming_ExtendedNamingContext_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somRespondsTo(ExtendedNaming_ExtendedNamingContext *somSelf, 
		somId mId);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somRespondsTo *somTD_ExtendedNaming_ExtendedNamingContext_somRespondsTo;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDispatch(ExtendedNaming_ExtendedNamingContext *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDispatch *somTD_ExtendedNaming_ExtendedNamingContext_somDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somClassDispatch(ExtendedNaming_ExtendedNamingContext *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somClassDispatch *somTD_ExtendedNaming_ExtendedNamingContext_somClassDispatch;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somCastObj(ExtendedNaming_ExtendedNamingContext *somSelf, 
		SOMClass* castedCls);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somCastObj *somTD_ExtendedNaming_ExtendedNamingContext_somCastObj;
typedef boolean   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somResetObj(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somResetObj *somTD_ExtendedNaming_ExtendedNamingContext_somResetObj;
typedef ExtendedNaming_ExtendedNamingContext*   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somPrintSelf(ExtendedNaming_ExtendedNamingContext *somSelf);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somPrintSelf *somTD_ExtendedNaming_ExtendedNamingContext_somPrintSelf;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDumpSelf(ExtendedNaming_ExtendedNamingContext *somSelf, 
		long level);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDumpSelf *somTD_ExtendedNaming_ExtendedNamingContext_somDumpSelf;
typedef void   SOMLINK somTP_ExtendedNaming_ExtendedNamingContext_somDumpSelfInt(ExtendedNaming_ExtendedNamingContext *somSelf, 
		long level);
typedef somTP_ExtendedNaming_ExtendedNamingContext_somDumpSelfInt *somTD_ExtendedNaming_ExtendedNamingContext_somDumpSelfInt;
}

#endif /* ExtendedNaming_ExtendedNamingContext_API */


/*
 * -- The C++ Wrapper Class for ExtendedNaming_ExtendedNamingContext
 */
class ExtendedNaming_ExtendedNamingContext : public CosNaming_NamingContext
{
public:

// ExtendedNaming_ExtendedNamingContext::new creates the class object if necessary, and then uses
// somNewNoInit to allocate memory and create the object.
// Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ExtendedNaming_ExtendedNamingContext) ExtendedNaming_ExtendedNamingContextNewClass(ExtendedNaming_ExtendedNamingContext_MajorVersion,ExtendedNaming_ExtendedNamingContext_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_ExtendedNaming_ExtendedNamingContext)));
}

// ExtendedNaming_ExtendedNamingContext::delete uses somFree.
void operator delete(void * obj)
{
   if (obj && *(void**)obj)
      ((SOMObject*)obj)->somFree();
}

ExtendedNaming_ExtendedNamingContext& operator=(ExtendedNaming_ExtendedNamingContext& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

ExtendedNaming_ExtendedNamingContext()
{
   if (*(void**)this != (ExtendedNaming_ExtendedNamingContextCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ExtendedNaming_ExtendedNamingContext(ExtendedNaming_ExtendedNamingContext* fromObj)
{
   if (*(void**)this != (ExtendedNaming_ExtendedNamingContextCClassData.parentMtab)->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: _get_allowed_object_types */
_IDL_SEQUENCE_TypeCode   _get_allowed_object_types(Environment *ev)
{
/*
 *  A list of types of objects that can be bound
 *  into this ENC. Empty implies no restrictions
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext__get_allowed_object_types)(ExtendedNaming_ExtendedNamingContextClassData._get_allowed_object_types))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: _get_allowed_property_types */
_IDL_SEQUENCE_TypeCode   _get_allowed_property_types(Environment *ev)
{
/*
 *  a list of the types of the properties that can be
 *  added to the entries in this ENC. Empty indicates
 *  no restrictions
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext__get_allowed_property_types)(ExtendedNaming_ExtendedNamingContextClassData._get_allowed_property_types))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: _get_allowed_property_names */
_IDL_SEQUENCE_string   _get_allowed_property_names(Environment *ev)
{
/*
 *  a list of names of properties that can be added
 *  to the entries in this ENC. Empty implies no
 *  restrictions
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext__get_allowed_property_names)(ExtendedNaming_ExtendedNamingContextClassData._get_allowed_property_names))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: _get_shared_property_types */
_IDL_SEQUENCE_TypeCode   _get_shared_property_types(Environment *ev)
{
/*
 *  a list of types of properties that can be shared
 *  Empty implies no restrictions
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext__get_shared_property_types)(ExtendedNaming_ExtendedNamingContextClassData._get_shared_property_types))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: _get_shared_property_names */
_IDL_SEQUENCE_string   _get_shared_property_names(Environment *ev)
{
/*
 *  a list of names of properties that can be shared
 *  Empty implies no restrictions
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext__get_shared_property_names)(ExtendedNaming_ExtendedNamingContextClassData._get_shared_property_names))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: get_features_supported */
unsigned short   get_features_supported(Environment *ev)
{
/*
 *  Gets a bit vector that this ENC implementation supports
 *  0 properties
 *  1 shared properties
 *  2 searching
 *  3 indexing
 *  4 restrictions on object types
 *  5 restrictions on property types
 *  6 restrictions on property names
 *  7 - 15 not used
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_get_features_supported)(ExtendedNaming_ExtendedNamingContextClassData.get_features_supported))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: add_property */
void   add_property(Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_Property* prop)
{
/*
 *  adds/sets property prop with name n in target enc.
 *  Name n need not be previously bound. If n has no
 *  binding, then it is bound to a null object. If
 *  property already exists, replaces old value
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_add_property)(ExtendedNaming_ExtendedNamingContextClassData.add_property))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,prop)
	);
}


/* method: add_properties */
void   add_properties(Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_PropertyList* props)
{
/*
 *  variation of add property. adds/sets more than
 *  one property
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_add_properties)(ExtendedNaming_ExtendedNamingContextClassData.add_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,props)
	);
}


/* method: bind_with_properties */
void   bind_with_properties(Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj, 
		ExtendedNaming_PropertyList* prop)
{
/*
 *  combination of add_properties and bind
 *  adds/sets property prop with name n in target enc.
 *  Name n need not be previously bound. If n has no
 *  binding, then it is bound to a null object. If
 *  property already exists, replaces old value
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_bind_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.bind_with_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,obj,prop)
	);
}


/* method: bind_context_with_properties */
void   bind_context_with_properties(Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_ExtendedNamingContext* obj, 
		ExtendedNaming_PropertyList* props)
{
/*
 *  Names an object that is a naming context. Also
 *  associates properties with the name object binding.
 *  Naming contexts bound using this operation participate
 *  in name resolution when compound names are resolved.
 *  Cannot bind a nil naming context.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_bind_context_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.bind_context_with_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,obj,props)
	);
}


/* method: rebind_with_properties */
void   rebind_with_properties(Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj, 
		ExtendedNaming_PropertyList* prop)
{
/*
 *  combination of rebind and add_properties
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_rebind_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.rebind_with_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,obj,prop)
	);
}


/* method: rebind_context_with_properties */
void   rebind_context_with_properties(Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_ExtendedNamingContext* obj, 
		ExtendedNaming_PropertyList* props)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_rebind_context_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.rebind_context_with_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,obj,props)
	);
}


/* method: share_property */
void   share_property(Environment *ev, 
		CosNaming_Name* target_n, 
		ExtendedNaming_ExtendedNamingContext* source_enc, 
		CosNaming_Name* source_n, 
		CosNaming_Istring pname)
{
/*
 *  Adds property to the binding indicated by target_n
 *  of the target naming context that are shared
 *  with the binding indicated
 *  by source_n in source_enc. Logically, all enc's that share
 *  properties are at the same level.
 *  If the property name is already defined as a local property,
 *  then ConflictingPropertyName is raised. If the property
 *  name is already defined as a shared property, then the
 *  property's source_n and source_enc are updated.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_share_property)(ExtendedNaming_ExtendedNamingContextClassData.share_property))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,target_n,source_enc,source_n,pname)
	);
}


/* method: share_properties */
void   share_properties(Environment *ev, 
		CosNaming_Name* target_n, 
		ExtendedNaming_ExtendedNamingContext* source_enc, 
		CosNaming_Name* source_n, 
		ExtendedNaming_IList* pnames)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_share_properties)(ExtendedNaming_ExtendedNamingContextClassData.share_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,target_n,source_enc,source_n,pnames)
	);
}


/* method: unshare_property */
void   unshare_property(Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring property_name)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_unshare_property)(ExtendedNaming_ExtendedNamingContextClassData.unshare_property))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,property_name)
	);
}


/* method: unshare_properties */
void   unshare_properties(Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_IList* pnames)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_unshare_properties)(ExtendedNaming_ExtendedNamingContextClassData.unshare_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,pnames)
	);
}


/* method: list_properties */
void   list_properties(Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyBindingList* pbl, 
		ExtendedNaming_PropertyBindingIterator** rest)
{
/*
 *  resolves name n in target enc and returns atmost
 *  howMany property bindings. If more exist, an iterator
 *  is returned that holds the remaining names
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_list_properties)(ExtendedNaming_ExtendedNamingContextClassData.list_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,howMany,pbl,rest)
	);
}


/* method: get_property */
void   get_property(Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring pn, 
		ExtendedNaming_Property* prop)
{
/*
 *  resolves the name n in target enc and returns the value
 *  associated with property pn
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_get_property)(ExtendedNaming_ExtendedNamingContextClassData.get_property))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,pn,prop)
	);
}


/* method: get_properties */
void   get_properties(Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_IList* inames, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_get_properties)(ExtendedNaming_ExtendedNamingContextClassData.get_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,howMany,inames,props,rest)
	);
}


/* method: get_all_properties */
void   get_all_properties(Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_get_all_properties)(ExtendedNaming_ExtendedNamingContextClassData.get_all_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,howMany,props,rest)
	);
}


/* method: resolve_with_property */
SOMObject*   resolve_with_property(Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring prop, 
		any* v)
{
/*
 *  combination of resolve and get_property
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_resolve_with_property)(ExtendedNaming_ExtendedNamingContextClassData.resolve_with_property))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,prop,v)
	);
}


/* method: resolve_with_properties */
SOMObject*   resolve_with_properties(Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_IList* inames, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest)
{
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_resolve_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.resolve_with_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,howMany,inames,props,rest)
	);
}


/* method: resolve_with_all_properties */
SOMObject*   resolve_with_all_properties(Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest)
{
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_resolve_with_all_properties)(ExtendedNaming_ExtendedNamingContextClassData.resolve_with_all_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,howMany,props,rest)
	);
}


/* method: remove_property */
void   remove_property(Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring prop)
{
/*
 *  resolves name n in target and removes property prop
 *  If the property is a shared property, then the sharing
 *  relationship between the physical enc and the property
 *  in severed. If the target enc happens to be the physical
 *  owner of the property (if it is a shared property),
 *  then the property is moved to someother enc
 *  (logical owner) and the sharing relationship
 *  between the property and the physical enc is severed.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_remove_property)(ExtendedNaming_ExtendedNamingContextClassData.remove_property))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,prop)
	);
}


/* method: remove_properties */
void   remove_properties(Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_IList* plist)
{
/*
 *  resolves name n in target and removes properties plist.
 *  If a property is a shared property, then the sharing
 *  relationship between the physical enc and the property
 *  in severed. If the target enc happens to be the physical
 *  owner of a shared property, then the property is moved to
 *  someother enc (logical owner) and the
 *  sharing relationship  between the property
 *  and the physical enc is severed.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_remove_properties)(ExtendedNaming_ExtendedNamingContextClassData.remove_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,plist)
	);
}


/* method: remove_all_properties */
void   remove_all_properties(Environment *ev, 
		CosNaming_Name* n)
{
/*
 *  resolves name n in target and removes all properties.
 *  If a property is a shared property, then the sharing
 *  relationship between the physical enc and the property
 *  in severed. If the target enc happens to be the physical
 *  owner of a shared property, then the property is moved to
 *  someother enc (logical owner) and the sharing relationshi
 *  between the property and the physical enc is severed.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_remove_all_properties)(ExtendedNaming_ExtendedNamingContextClassData.remove_all_properties))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n)
	);
}


/* method: find_any */
SOMObject*   find_any(Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance)
{
   return 	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_find_any)(ExtendedNaming_ExtendedNamingContextClassData.find_any))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,c,distance)
	);
}


/* method: find_all */
void   find_all(Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance, 
		unsigned long howMany, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator** bi)
{
/*
 *  Returns all binding names whose
 *  properties satisfy Constraint "c".
 *  It will search up to a depth of "distance"
 *  for all bindings that satisfy the
 *  given constraint. if distance is set to 0
 *  this operation will only search the
 *  targeted context. Up to how_many
 *  name-object-bindings will be put into
 *  the BindingList "bl". If more than how_many
 *  objects are found to satifsy the
 *  constraint, then the remaining
 *  name-object-bindings are put into the
 *  BindingIterator, "bi".
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_find_all)(ExtendedNaming_ExtendedNamingContextClassData.find_all))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,c,distance,howMany,bl,bi)
	);
}


/* method: find_any_name_binding */
void   find_any_name_binding(Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance, 
		CosNaming_Binding* bi)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_find_any_name_binding)(ExtendedNaming_ExtendedNamingContextClassData.find_any_name_binding))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,c,distance,bi)
	);
}


/* method: add_index */
void   add_index(Environment *ev, 
		ExtendedNaming_IndexDescriptor* i)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_add_index)(ExtendedNaming_ExtendedNamingContextClassData.add_index))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,i)
	);
}


/* method: list_indexes */
void   list_indexes(Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_IndexDescriptorList* il, 
		ExtendedNaming_IndexIterator** rest)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_list_indexes)(ExtendedNaming_ExtendedNamingContextClassData.list_indexes))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,howMany,il,rest)
	);
}


/* method: remove_index */
void   remove_index(Environment *ev, 
		ExtendedNaming_IndexDescriptor* i)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_remove_index)(ExtendedNaming_ExtendedNamingContextClassData.remove_index))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,i)
	);
}


/*
 * Reintroduce inherited methods
 */

/* method: bind */
void   bind(Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj)
{
/*
 *  creates a binding of a name and an object in
 *  the target naming context. Naming Contexts that are
 *  bound using bind do not participate in name resolution
 *  when compound name resolution is done
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_bind)(CosNaming_NamingContextClassData.bind))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,obj)
	);
}


/* method: rebind */
void   rebind(Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj)
{
/*
 *  creates a binding of the name and an object even if
 *  the name is already bound in the context. Naming
 *  contexts that are bound using rebind do not participate
 *  in name resolution process when compound names are
 *  passed to be resolved.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_rebind)(CosNaming_NamingContextClassData.rebind))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,obj)
	);
}


/* method: bind_context */
void   bind_context(Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext* nc)
{
/*
 *  binds a naming context to the name. Naming contexts
 *  that are bound using bind_context participate in
 *  name resolution when compound names are resolved
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_bind_context)(CosNaming_NamingContextClassData.bind_context))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,nc)
	);
}


/* method: rebind_context */
void   rebind_context(Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext* nc)
{
/*
 *  creates a binding between a name and a naming context
 *  in the target naming context even if the name is
 *  already bound in the context. Naming contexts that
 *  are bound using rebind_context participate in name
 *  resolution when compound names are resolved
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_rebind_context)(CosNaming_NamingContextClassData.rebind_context))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n,nc)
	);
}


/* method: resolve */
SOMObject*   resolve(Environment *ev, 
		CosNaming_Name* n)
{
/*
 * retrieves an object bound to a name in the context
 *  Since names can be compound, name resolution can
 *  traverse multiple naming contexts
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_resolve)(CosNaming_NamingContextClassData.resolve))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n)
	);
}


/* method: unbind */
void   unbind(Environment *ev, 
		CosNaming_Name* n)
{
/*
 *  removes a name binding from a context
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_unbind)(CosNaming_NamingContextClassData.unbind))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n)
	);
}


/* method: new_context */
CosNaming_NamingContext*   new_context(Environment *ev)
{
/*
 *  Returns a new naming context in the same process as
 *  the context on which the operation was invoked
 *  The new context is not bound to any name
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_new_context)(CosNaming_NamingContextClassData.new_context))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: bind_new_context */
CosNaming_NamingContext*   bind_new_context(Environment *ev, 
		CosNaming_Name* n)
{
/*
 *  Creates a name naming context and binds it to the name
 *  supplied as the argument.
 *  The naming context is created in the same process as
 *  the context on which the bind_new_context was invoked
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_bind_new_context)(CosNaming_NamingContextClassData.bind_new_context))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,n)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the naming context. If the naming context has
 *  bindings, a NotEmpty exception is raised. It is the
 *  responsibilty of the caller to make sure that there
 *  are no refernces to this naming context.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_destroy)(CosNaming_NamingContextClassData.destroy))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev)
	);
}


/* method: list */
void   list(Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator** bi)
{
/*
 *  returns at most "how_many" number of bindings in bl.
 *  If the naming context contains additional bindings, a
 *  BindingIterator is returned. If the naming context
 *  does not contain additional bindings, the binding
 *  iterator is a "nil" object reference
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_NamingContext),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_list)(CosNaming_NamingContextClassData.list))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)), ev,how_many,bl,bi)
	);
}


/* initializer method: somDefaultInit */
void   somDefaultInit(som3InitCtrl* ctrl)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl)
	);
}


/* method: somDestruct */
void   somDestruct(octet doFree, 
		som3DestructCtrl* ctrl)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDestruct)(SOMObjectClassData.somDestruct))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),doFree,ctrl)
	);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor. Use this to make copies of objects for
 *  calling methods with "by-value" argument semantics.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
ExtendedNaming_ExtendedNamingContext*  somDefaultAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator. Use this to "assign" the state of one
 *  object to another.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default copy constructor that uses a const volatile fromObj.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstAssign */
ExtendedNaming_ExtendedNamingContext*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstAssign)(SOMObjectClassData.somDefaultConstAssign))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultVAssign */
ExtendedNaming_ExtendedNamingContext*  somDefaultVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultVAssign)(SOMObjectClassData.somDefaultVAssign))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultConstVAssign */
ExtendedNaming_ExtendedNamingContext*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
		SOMObject* fromObj)
{
/*
 *  A default assignment operator that uses a const volatile fromObj.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDefaultConstVAssign)(SOMObjectClassData.somDefaultConstVAssign))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somInit */
void   somInit()
{
/*
 *  Obsolete but still supported. Override somDefaultInit instead of somInit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somInit)(SOMObjectClassData.somInit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somUninit */
void   somUninit()
{
/*
 *  Obsolete but still supported. Override somDestruct instead of somUninit.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somUninit)(SOMObjectClassData.somUninit))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somFree */
void   somFree()
{
/*
 *  The default implementation just calls somDestruct.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somFree)(SOMObjectClassData.somFree))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
/*
 *  Return the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somGetClass)(SOMObjectClassData.somGetClass))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somGetClassName */
string   somGetClassName()
{
/*
 *  Return the name of the receiver's class.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somGetClassName)(SOMObjectClassData.somGetClassName))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somGetSize)(SOMObjectClassData.somGetSize))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver responds to methods
 *  introduced by <aClassObj>, and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somIsA)(SOMObjectClassData.somIsA))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),aClassObj)
	);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
/*
 *  Returns 1 (true) if the receiver is an instance of
 *  <aClassObj> and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),aClassObj)
	);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
/*
 *  Returns 1 (true) if the indicated method can be invoked
 *  on the receiver and 0 (false) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),mId)
	);
}


/* va_list method: somDispatch */

/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
/* the va_list invocation form */
boolean   SOMObject_somDispatch(somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  This method provides a generic, class-specific dispatch mechanism.
 *  It accepts as input <retValue> a pointer to the memory area to be
 *  loaded with the result of dispatching the method indicated by
 *  <methodId> using the arguments in <ap>. <ap> contains the object
 *  on which the method is to be invoked as the first argument.
 * 
 *  Default redispatch stubs invoke this method.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDispatch)(SOMObjectClassData.somDispatch))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */

/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
/* the va_list invocation form */
boolean   SOMObject_somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap)
{   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),clsObj,retValue,methodId,ap)
	);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		...)
{
/*
 *  Like somDispatch, but method resolution for static methods is done
 *  according to the clsObj instance method table.
 */
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),clsObj,retValue,methodId,ap)
	);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* castedCls)
{
/*
 *  Changes the behavior of the target object to that implemented
 *  by castedCls. This is possible when all concrete data in castedCls
 *  is also concrete in the true class of the target object.
 *  Returns true (1) on success, and false (0) otherwise.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somCastObj)(SOMObjectClassData.somCastObj))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),castedCls)
	);
}


/* method: somResetObj */
boolean   somResetObj()
{
/*
 *  reset an object to its true class. Returns true always.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somResetObj)(SOMObjectClassData.somResetObj))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somPrintSelf */
ExtendedNaming_ExtendedNamingContext*  somPrintSelf()
{
/*
 *  Uses <SOMOutCharRoutine> to write a brief string with identifying
 *  information about this object.  The default implementation just gives
 *  the object's class name and its address in memory.
 *  <self> is returned.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)))
	);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write a detailed description of this object
 *  and its current state.
 * 
 *  <level> indicates the nesting level for describing compound objects
 *  it must be greater than or equal to zero.  All lines in the
 *  description will be preceeded by <2*level> spaces.
 * 
 *  This routine only actually writes the data that concerns the object
 *  as a whole, such as class, and uses <somDumpSelfInt> to describe
 *  the object's current state.  This approach allows readable
 *  descriptions of compound objects to be constructed.
 * 
 *  Generally it is not necessary to override this method, if it is
 *  overriden it generally must be completely replaced.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),level)
	);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
/*
 *  Uses <SOMOutCharRoutine> to write in the current state of this object.
 *  Generally this method will need to be overridden.  When overriding
 *  it, begin by calling the parent class form of this method and then
 *  write in a description of your class's instance data. This will
 *  result in a description of all the object's instance data going
 *  from its root ancestor class to its specific class.
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_ExtendedNaming_ExtendedNamingContext_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((ExtendedNaming_ExtendedNamingContext *)((void *)this)),level)
	);
}



};   /* ExtendedNaming_ExtendedNamingContext */



#endif       /* SOM_ExtendedNaming_ExtendedNamingContext_xh */
