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

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

/*
 * Start of bindings for IDL types
 */

class SOMClass;
class SOMObject;

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

#ifndef SOM_Biter_BINDITER_TWO_xh
#define SOM_Biter_BINDITER_TWO_xh


#define Biter_BINDITER_TWO_MajorVersion 3
#define Biter_BINDITER_TWO_MinorVersion 0
class Biter_BINDITER_TWO;

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

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

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

/*
 * Start of bindings for IDL types
 */


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

/*
 * A function to create the Biter_BINDITER_TWO class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_biter SOMClass * SOMLINK Biter_BINDITER_TWONewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct Biter_BINDITER_TWOClassDataStructure {
	SOMClass *classObject;
	somMToken BI_Init2;
	somMToken add_bindings;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_biter Biter_BINDITER_TWOClassData;
SOMEXTERN struct Biter_BINDITER_TWOCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_biter Biter_BINDITER_TWOCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Biter_BINDITER_TWO (Biter_BINDITER_TWOClassData.classObject)
#ifndef SOMGD_Biter_BINDITER_TWO
    #if (defined(_Biter_BINDITER_TWO) || defined(__Biter_BINDITER_TWO))
        #undef _Biter_BINDITER_TWO
        #undef __Biter_BINDITER_TWO
        #define SOMGD_Biter_BINDITER_TWO 1
    #else
        #define _Biter_BINDITER_TWO _SOMCLASS_Biter_BINDITER_TWO
    #endif /* _Biter_BINDITER_TWO */
#endif /* SOMGD_Biter_BINDITER_TWO */
#define Biter_BINDITER_TWO_classObj _SOMCLASS_Biter_BINDITER_TWO
#define _SOMMTOKEN_Biter_BINDITER_TWO(method) ((somMToken)Biter_BINDITER_TWOClassData.method)

/*
 * -- Typedefs for Biter_BINDITER_TWO Method Procedures
 */
SOMEXTERN {
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_BI_Init2(Biter_BINDITER_TWO *somSelf, Environment *ev, 
		somInitCtrl* ctrl, 
		CosNaming_BindingList* bl);
typedef somTP_Biter_BINDITER_TWO_BI_Init2 *somTD_Biter_BINDITER_TWO_BI_Init2;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_add_bindings(Biter_BINDITER_TWO *somSelf, Environment *ev, 
		CosNaming_BindingList* bl);
typedef somTP_Biter_BINDITER_TWO_add_bindings *somTD_Biter_BINDITER_TWO_add_bindings;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_next_one(Biter_BINDITER_TWO *somSelf, Environment *ev, 
		CosNaming_Binding* b);
typedef somTP_Biter_BINDITER_TWO_next_one *somTD_Biter_BINDITER_TWO_next_one;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_next_n(Biter_BINDITER_TWO *somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl);
typedef somTP_Biter_BINDITER_TWO_next_n *somTD_Biter_BINDITER_TWO_next_n;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_destroy(Biter_BINDITER_TWO *somSelf, Environment *ev);
typedef somTP_Biter_BINDITER_TWO_destroy *somTD_Biter_BINDITER_TWO_destroy;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultInit(Biter_BINDITER_TWO *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_Biter_BINDITER_TWO_somDefaultInit *somTD_Biter_BINDITER_TWO_somDefaultInit;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDestruct(Biter_BINDITER_TWO *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_Biter_BINDITER_TWO_somDestruct *somTD_Biter_BINDITER_TWO_somDestruct;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultCopyInit(Biter_BINDITER_TWO *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultCopyInit *somTD_Biter_BINDITER_TWO_somDefaultCopyInit;
typedef Biter_BINDITER_TWO*   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultAssign(Biter_BINDITER_TWO *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultAssign *somTD_Biter_BINDITER_TWO_somDefaultAssign;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultConstCopyInit(Biter_BINDITER_TWO *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultConstCopyInit *somTD_Biter_BINDITER_TWO_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultVCopyInit(Biter_BINDITER_TWO *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultVCopyInit *somTD_Biter_BINDITER_TWO_somDefaultVCopyInit;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultConstVCopyInit(Biter_BINDITER_TWO *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultConstVCopyInit *somTD_Biter_BINDITER_TWO_somDefaultConstVCopyInit;
typedef Biter_BINDITER_TWO*   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultConstAssign(Biter_BINDITER_TWO *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultConstAssign *somTD_Biter_BINDITER_TWO_somDefaultConstAssign;
typedef Biter_BINDITER_TWO*   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultVAssign(Biter_BINDITER_TWO *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultVAssign *somTD_Biter_BINDITER_TWO_somDefaultVAssign;
typedef Biter_BINDITER_TWO*   SOMLINK somTP_Biter_BINDITER_TWO_somDefaultConstVAssign(Biter_BINDITER_TWO *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_TWO_somDefaultConstVAssign *somTD_Biter_BINDITER_TWO_somDefaultConstVAssign;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somInit(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somInit *somTD_Biter_BINDITER_TWO_somInit;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somUninit(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somUninit *somTD_Biter_BINDITER_TWO_somUninit;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somFree(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somFree *somTD_Biter_BINDITER_TWO_somFree;
typedef SOMClass*   SOMLINK somTP_Biter_BINDITER_TWO_somGetClass(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somGetClass *somTD_Biter_BINDITER_TWO_somGetClass;
typedef string   SOMLINK somTP_Biter_BINDITER_TWO_somGetClassName(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somGetClassName *somTD_Biter_BINDITER_TWO_somGetClassName;
typedef long   SOMLINK somTP_Biter_BINDITER_TWO_somGetSize(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somGetSize *somTD_Biter_BINDITER_TWO_somGetSize;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somIsA(Biter_BINDITER_TWO *somSelf, 
		SOMClass* aClassObj);
typedef somTP_Biter_BINDITER_TWO_somIsA *somTD_Biter_BINDITER_TWO_somIsA;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somIsInstanceOf(Biter_BINDITER_TWO *somSelf, 
		SOMClass* aClassObj);
typedef somTP_Biter_BINDITER_TWO_somIsInstanceOf *somTD_Biter_BINDITER_TWO_somIsInstanceOf;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somRespondsTo(Biter_BINDITER_TWO *somSelf, 
		somId mId);
typedef somTP_Biter_BINDITER_TWO_somRespondsTo *somTD_Biter_BINDITER_TWO_somRespondsTo;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somDispatch(Biter_BINDITER_TWO *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_Biter_BINDITER_TWO_somDispatch *somTD_Biter_BINDITER_TWO_somDispatch;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somClassDispatch(Biter_BINDITER_TWO *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_Biter_BINDITER_TWO_somClassDispatch *somTD_Biter_BINDITER_TWO_somClassDispatch;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somCastObj(Biter_BINDITER_TWO *somSelf, 
		SOMClass* castedCls);
typedef somTP_Biter_BINDITER_TWO_somCastObj *somTD_Biter_BINDITER_TWO_somCastObj;
typedef boolean   SOMLINK somTP_Biter_BINDITER_TWO_somResetObj(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somResetObj *somTD_Biter_BINDITER_TWO_somResetObj;
typedef Biter_BINDITER_TWO*   SOMLINK somTP_Biter_BINDITER_TWO_somPrintSelf(Biter_BINDITER_TWO *somSelf);
typedef somTP_Biter_BINDITER_TWO_somPrintSelf *somTD_Biter_BINDITER_TWO_somPrintSelf;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDumpSelf(Biter_BINDITER_TWO *somSelf, 
		long level);
typedef somTP_Biter_BINDITER_TWO_somDumpSelf *somTD_Biter_BINDITER_TWO_somDumpSelf;
typedef void   SOMLINK somTP_Biter_BINDITER_TWO_somDumpSelfInt(Biter_BINDITER_TWO *somSelf, 
		long level);
typedef somTP_Biter_BINDITER_TWO_somDumpSelfInt *somTD_Biter_BINDITER_TWO_somDumpSelfInt;
}

#endif /* Biter_BINDITER_TWO_API */


/*
 * -- The C++ Wrapper Class for Biter_BINDITER_TWO
 */
class Biter_BINDITER_TWO : public CosNaming_BindingIterator
{
public:

// Biter_BINDITER_TWO::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 (!_Biter_BINDITER_TWO) Biter_BINDITER_TWONewClass(Biter_BINDITER_TWO_MajorVersion,Biter_BINDITER_TWO_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_Biter_BINDITER_TWO)));
}

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

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

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

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

Biter_BINDITER_TWO(Environment *ev,CosNaming_BindingList* bl) 
{
   BI_Init2(ev,0,bl);
}


/* initializer method: BI_Init2 */
void   BI_Init2(Environment *ev, 
		somInitCtrl* ctrl, 
		CosNaming_BindingList* bl)
{
/*
 *  Constructor
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_Biter_BINDITER_TWO),
	 ((somTD_Biter_BINDITER_TWO_BI_Init2)(Biter_BINDITER_TWOClassData.BI_Init2))(((Biter_BINDITER_TWO *)((void *)this)), ev,ctrl,bl)
	);
}


/* method: add_bindings */
void   add_bindings(Environment *ev, 
		CosNaming_BindingList* bl)
{
/*
 *  appends "bl" to the objects binding list. Callee
 *  owns memory
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_Biter_BINDITER_TWO),
	 ((somTD_Biter_BINDITER_TWO_add_bindings)(Biter_BINDITER_TWOClassData.add_bindings))(((Biter_BINDITER_TWO *)((void *)this)), ev,bl)
	);
}


/*
 * Reintroduce inherited methods
 */

/* method: next_one */
boolean   next_one(Environment *ev, 
		CosNaming_Binding* b)
{
/*
 *  returns the next binding. FALSE is returned if
 *  there are no more bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_Biter_BINDITER_TWO_next_one)(CosNaming_BindingIteratorClassData.next_one))(((Biter_BINDITER_TWO *)((void *)this)), ev,b)
	);
}


/* method: next_n */
boolean   next_n(Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl)
{
/*
 *  returns at most the "how_many" number of bindings.
 *  Returns FALSE if there are no more bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_Biter_BINDITER_TWO_next_n)(CosNaming_BindingIteratorClassData.next_n))(((Biter_BINDITER_TWO *)((void *)this)), ev,how_many,bl)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_Biter_BINDITER_TWO_destroy)(CosNaming_BindingIteratorClassData.destroy))(((Biter_BINDITER_TWO *)((void *)this)), ev)
	);
}


/* 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_Biter_BINDITER_TWO_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDestruct)(SOMObjectClassData.somDestruct))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((Biter_BINDITER_TWO *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
Biter_BINDITER_TWO*  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_Biter_BINDITER_TWO_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((Biter_BINDITER_TWO *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_Biter_BINDITER_TWO_somGetSize)(SOMObjectClassData.somGetSize))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somIsA)(SOMObjectClassData.somIsA))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDispatch)(SOMObjectClassData.somDispatch))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDispatch)(SOMObjectClassData.somDispatch))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somCastObj)(SOMObjectClassData.somCastObj))(((Biter_BINDITER_TWO *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
Biter_BINDITER_TWO*  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_Biter_BINDITER_TWO_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((Biter_BINDITER_TWO *)((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_Biter_BINDITER_TWO_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((Biter_BINDITER_TWO *)((void *)this)),level)
	);
}



};   /* Biter_BINDITER_TWO */



#endif       /* SOM_Biter_BINDITER_TWO_xh */

#ifndef SOM_Biter_BINDITER_ONE_xh
#define SOM_Biter_BINDITER_ONE_xh


#define Biter_BINDITER_ONE_MajorVersion 0
#define Biter_BINDITER_ONE_MinorVersion 0
class Biter_BINDITER_ONE;

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

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

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

/*
 * Start of bindings for IDL types
 */

#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 Biter_BINDITER_ONE_stringSeq;

#ifndef SOM_DONT_USE_SHORT_NAMES

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_stringSeq
    #ifdef stringSeq
        #undef stringSeq
        #define SOMTGD_stringSeq 1
    #else
        #define stringSeq Biter_BINDITER_ONE_stringSeq
    #endif /* stringSeq */
#endif /* SOMTGD_stringSeq */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

/*
 * A function to create the Biter_BINDITER_ONE class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_biter SOMClass * SOMLINK Biter_BINDITER_ONENewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct Biter_BINDITER_ONEClassDataStructure {
	SOMClass *classObject;
	somMToken BI_Init1;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_biter Biter_BINDITER_ONEClassData;
SOMEXTERN struct Biter_BINDITER_ONECClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_biter Biter_BINDITER_ONECClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Biter_BINDITER_ONE (Biter_BINDITER_ONEClassData.classObject)
#ifndef SOMGD_Biter_BINDITER_ONE
    #if (defined(_Biter_BINDITER_ONE) || defined(__Biter_BINDITER_ONE))
        #undef _Biter_BINDITER_ONE
        #undef __Biter_BINDITER_ONE
        #define SOMGD_Biter_BINDITER_ONE 1
    #else
        #define _Biter_BINDITER_ONE _SOMCLASS_Biter_BINDITER_ONE
    #endif /* _Biter_BINDITER_ONE */
#endif /* SOMGD_Biter_BINDITER_ONE */
#define Biter_BINDITER_ONE_classObj _SOMCLASS_Biter_BINDITER_ONE
#define _SOMMTOKEN_Biter_BINDITER_ONE(method) ((somMToken)Biter_BINDITER_ONEClassData.method)

/*
 * -- Typedefs for Biter_BINDITER_ONE Method Procedures
 */
SOMEXTERN {
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_BI_Init1(Biter_BINDITER_ONE *somSelf, Environment *ev, 
		somInitCtrl* ctrl, 
		Biter_BINDITER_ONE_stringSeq* key, 
		string databaseFile);
typedef somTP_Biter_BINDITER_ONE_BI_Init1 *somTD_Biter_BINDITER_ONE_BI_Init1;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_next_one(Biter_BINDITER_ONE *somSelf, Environment *ev, 
		CosNaming_Binding* b);
typedef somTP_Biter_BINDITER_ONE_next_one *somTD_Biter_BINDITER_ONE_next_one;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_next_n(Biter_BINDITER_ONE *somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl);
typedef somTP_Biter_BINDITER_ONE_next_n *somTD_Biter_BINDITER_ONE_next_n;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_destroy(Biter_BINDITER_ONE *somSelf, Environment *ev);
typedef somTP_Biter_BINDITER_ONE_destroy *somTD_Biter_BINDITER_ONE_destroy;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultInit(Biter_BINDITER_ONE *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_Biter_BINDITER_ONE_somDefaultInit *somTD_Biter_BINDITER_ONE_somDefaultInit;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDestruct(Biter_BINDITER_ONE *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_Biter_BINDITER_ONE_somDestruct *somTD_Biter_BINDITER_ONE_somDestruct;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultCopyInit(Biter_BINDITER_ONE *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultCopyInit *somTD_Biter_BINDITER_ONE_somDefaultCopyInit;
typedef Biter_BINDITER_ONE*   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultAssign(Biter_BINDITER_ONE *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultAssign *somTD_Biter_BINDITER_ONE_somDefaultAssign;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultConstCopyInit(Biter_BINDITER_ONE *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultConstCopyInit *somTD_Biter_BINDITER_ONE_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultVCopyInit(Biter_BINDITER_ONE *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultVCopyInit *somTD_Biter_BINDITER_ONE_somDefaultVCopyInit;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultConstVCopyInit(Biter_BINDITER_ONE *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultConstVCopyInit *somTD_Biter_BINDITER_ONE_somDefaultConstVCopyInit;
typedef Biter_BINDITER_ONE*   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultConstAssign(Biter_BINDITER_ONE *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultConstAssign *somTD_Biter_BINDITER_ONE_somDefaultConstAssign;
typedef Biter_BINDITER_ONE*   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultVAssign(Biter_BINDITER_ONE *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultVAssign *somTD_Biter_BINDITER_ONE_somDefaultVAssign;
typedef Biter_BINDITER_ONE*   SOMLINK somTP_Biter_BINDITER_ONE_somDefaultConstVAssign(Biter_BINDITER_ONE *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_Biter_BINDITER_ONE_somDefaultConstVAssign *somTD_Biter_BINDITER_ONE_somDefaultConstVAssign;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somInit(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somInit *somTD_Biter_BINDITER_ONE_somInit;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somUninit(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somUninit *somTD_Biter_BINDITER_ONE_somUninit;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somFree(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somFree *somTD_Biter_BINDITER_ONE_somFree;
typedef SOMClass*   SOMLINK somTP_Biter_BINDITER_ONE_somGetClass(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somGetClass *somTD_Biter_BINDITER_ONE_somGetClass;
typedef string   SOMLINK somTP_Biter_BINDITER_ONE_somGetClassName(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somGetClassName *somTD_Biter_BINDITER_ONE_somGetClassName;
typedef long   SOMLINK somTP_Biter_BINDITER_ONE_somGetSize(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somGetSize *somTD_Biter_BINDITER_ONE_somGetSize;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somIsA(Biter_BINDITER_ONE *somSelf, 
		SOMClass* aClassObj);
typedef somTP_Biter_BINDITER_ONE_somIsA *somTD_Biter_BINDITER_ONE_somIsA;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somIsInstanceOf(Biter_BINDITER_ONE *somSelf, 
		SOMClass* aClassObj);
typedef somTP_Biter_BINDITER_ONE_somIsInstanceOf *somTD_Biter_BINDITER_ONE_somIsInstanceOf;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somRespondsTo(Biter_BINDITER_ONE *somSelf, 
		somId mId);
typedef somTP_Biter_BINDITER_ONE_somRespondsTo *somTD_Biter_BINDITER_ONE_somRespondsTo;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somDispatch(Biter_BINDITER_ONE *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_Biter_BINDITER_ONE_somDispatch *somTD_Biter_BINDITER_ONE_somDispatch;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somClassDispatch(Biter_BINDITER_ONE *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_Biter_BINDITER_ONE_somClassDispatch *somTD_Biter_BINDITER_ONE_somClassDispatch;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somCastObj(Biter_BINDITER_ONE *somSelf, 
		SOMClass* castedCls);
typedef somTP_Biter_BINDITER_ONE_somCastObj *somTD_Biter_BINDITER_ONE_somCastObj;
typedef boolean   SOMLINK somTP_Biter_BINDITER_ONE_somResetObj(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somResetObj *somTD_Biter_BINDITER_ONE_somResetObj;
typedef Biter_BINDITER_ONE*   SOMLINK somTP_Biter_BINDITER_ONE_somPrintSelf(Biter_BINDITER_ONE *somSelf);
typedef somTP_Biter_BINDITER_ONE_somPrintSelf *somTD_Biter_BINDITER_ONE_somPrintSelf;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDumpSelf(Biter_BINDITER_ONE *somSelf, 
		long level);
typedef somTP_Biter_BINDITER_ONE_somDumpSelf *somTD_Biter_BINDITER_ONE_somDumpSelf;
typedef void   SOMLINK somTP_Biter_BINDITER_ONE_somDumpSelfInt(Biter_BINDITER_ONE *somSelf, 
		long level);
typedef somTP_Biter_BINDITER_ONE_somDumpSelfInt *somTD_Biter_BINDITER_ONE_somDumpSelfInt;
}

#endif /* Biter_BINDITER_ONE_API */


/*
 * -- The C++ Wrapper Class for Biter_BINDITER_ONE
 */
class Biter_BINDITER_ONE : public CosNaming_BindingIterator
{
public:

// Biter_BINDITER_ONE::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 (!_Biter_BINDITER_ONE) Biter_BINDITER_ONENewClass(Biter_BINDITER_ONE_MajorVersion,Biter_BINDITER_ONE_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_Biter_BINDITER_ONE)));
}

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

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

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

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

Biter_BINDITER_ONE(Environment *ev,Biter_BINDITER_ONE_stringSeq* key,string databaseFile) 
{
   BI_Init1(ev,0,key,databaseFile);
}


/* initializer method: BI_Init1 */
void   BI_Init1(Environment *ev, 
		somInitCtrl* ctrl, 
		Biter_BINDITER_ONE_stringSeq* key, 
		string databaseFile)
{
/*
 *  Constructor
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_Biter_BINDITER_ONE),
	 ((somTD_Biter_BINDITER_ONE_BI_Init1)(Biter_BINDITER_ONEClassData.BI_Init1))(((Biter_BINDITER_ONE *)((void *)this)), ev,ctrl,key,databaseFile)
	);
}


/*
 * Reintroduce inherited methods
 */

/* method: next_one */
boolean   next_one(Environment *ev, 
		CosNaming_Binding* b)
{
/*
 *  returns the next binding. FALSE is returned if
 *  there are no more bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_Biter_BINDITER_ONE_next_one)(CosNaming_BindingIteratorClassData.next_one))(((Biter_BINDITER_ONE *)((void *)this)), ev,b)
	);
}


/* method: next_n */
boolean   next_n(Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl)
{
/*
 *  returns at most the "how_many" number of bindings.
 *  Returns FALSE if there are no more bindings
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_Biter_BINDITER_ONE_next_n)(CosNaming_BindingIteratorClassData.next_n))(((Biter_BINDITER_ONE *)((void *)this)), ev,how_many,bl)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_Biter_BINDITER_ONE_destroy)(CosNaming_BindingIteratorClassData.destroy))(((Biter_BINDITER_ONE *)((void *)this)), ev)
	);
}


/* 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_Biter_BINDITER_ONE_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDestruct)(SOMObjectClassData.somDestruct))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((Biter_BINDITER_ONE *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
Biter_BINDITER_ONE*  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_Biter_BINDITER_ONE_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((Biter_BINDITER_ONE *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_Biter_BINDITER_ONE_somGetSize)(SOMObjectClassData.somGetSize))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somIsA)(SOMObjectClassData.somIsA))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDispatch)(SOMObjectClassData.somDispatch))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDispatch)(SOMObjectClassData.somDispatch))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somCastObj)(SOMObjectClassData.somCastObj))(((Biter_BINDITER_ONE *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
Biter_BINDITER_ONE*  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_Biter_BINDITER_ONE_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((Biter_BINDITER_ONE *)((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_Biter_BINDITER_ONE_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((Biter_BINDITER_ONE *)((void *)this)),level)
	);
}



};   /* Biter_BINDITER_ONE */



#endif       /* SOM_Biter_BINDITER_ONE_xh */
