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

#ifndef SOM_Module_xnamingf_FileXNaming_defined
#define SOM_Module_xnamingf_FileXNaming_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 Container;
class SOMDObject;
class Principal;
class ImplementationDef;
class InterfaceDef;
class NVList;
class Context;
class Request;
class CosObjectIdentity_IdentifiableObject;
class DataBase;
class BackingStore;
#define FileXNaming_STARTINGLENGTH 16 /* 16 */
#define FileXNaming_MAXSTACK 100 /* 100 */
/*
 *  File system based ENC. Concrete implementation of
 *  ExtendedNamingContext
 */


#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_STARTINGLENGTH
    #ifdef STARTINGLENGTH
        #undef STARTINGLENGTH
        #define SOMTGD_STARTINGLENGTH 1
    #else
        #define STARTINGLENGTH FileXNaming_STARTINGLENGTH
    #endif /* STARTINGLENGTH */
#endif /* SOMTGD_STARTINGLENGTH */
#ifndef SOMTGD_MAXSTACK
    #ifdef MAXSTACK
        #undef MAXSTACK
        #define SOMTGD_MAXSTACK 1
    #else
        #define MAXSTACK FileXNaming_MAXSTACK
    #endif /* MAXSTACK */
#endif /* SOMTGD_MAXSTACK */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#ifndef SOM_FileXNaming_FileENC_xh
#define SOM_FileXNaming_FileENC_xh


/*
 *  default implementation of BindingIterator
 */

#define FileXNaming_FileENC_MajorVersion 0
#define FileXNaming_FileENC_MinorVersion 0
class FileXNaming_FileENC;

/*
 *  default implementation of BindingIterator
 */

/* Parents */
#ifndef SOM_ExtendedNaming_ExtendedNamingContext_xh
#ifdef SOMLOCALINCLUDES
#include "xnaming.xh"
#else
#include <xnaming.xh>
#endif
#endif
#ifndef SOM_somOS_ServiceBase_xh
#ifdef SOMLOCALINCLUDES
#include "somos.xh"
#else
#include <somos.xh>
#endif
#endif

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

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

/*
 * Start of bindings for IDL types
 */

typedef
string  FileXNaming_FileENC_Constraint;
typedef
char * FileXNaming_FileENC_Strings;
#ifndef _IDL_SEQUENCE_FileXNaming_FileENC_Strings_defined
#define _IDL_SEQUENCE_FileXNaming_FileENC_Strings_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    FileXNaming_FileENC_Strings *_buffer;
} _IDL_SEQUENCE_FileXNaming_FileENC_Strings;
#endif /* _IDL_SEQUENCE_FileXNaming_FileENC_Strings_defined */ 

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_Constraint
    #ifdef Constraint
        #undef Constraint
        #define SOMTGD_Constraint 1
    #else
        #define Constraint FileXNaming_FileENC_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 FileXNaming_FileENC_Strings
    #endif /* Strings */
#endif /* SOMTGD_Strings */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD__IDL_SEQUENCE_Strings
    #ifdef _IDL_SEQUENCE_Strings
        #undef _IDL_SEQUENCE_Strings
        #define SOMTGD__IDL_SEQUENCE_Strings 1
    #else
        #define _IDL_SEQUENCE_Strings _IDL_SEQUENCE_FileXNaming_FileENC_Strings
    #endif /* _IDL_SEQUENCE_Strings */
#endif /* SOMTGD__IDL_SEQUENCE_Strings */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

/*
 * A function to create the FileXNaming_FileENC class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnamingf SOMClass * SOMLINK FileXNaming_FileENCNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct FileXNaming_FileENCClassDataStructure {
	SOMClass *classObject;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FileENCClassData;
SOMEXTERN struct FileXNaming_FileENCCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FileENCCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_FileXNaming_FileENC (FileXNaming_FileENCClassData.classObject)
#ifndef SOMGD_FileXNaming_FileENC
    #if (defined(_FileXNaming_FileENC) || defined(__FileXNaming_FileENC))
        #undef _FileXNaming_FileENC
        #undef __FileXNaming_FileENC
        #define SOMGD_FileXNaming_FileENC 1
    #else
        #define _FileXNaming_FileENC _SOMCLASS_FileXNaming_FileENC
    #endif /* _FileXNaming_FileENC */
#endif /* SOMGD_FileXNaming_FileENC */
#define FileXNaming_FileENC_classObj _SOMCLASS_FileXNaming_FileENC
#define _SOMMTOKEN_FileXNaming_FileENC(method) ((somMToken)FileXNaming_FileENCClassData.method)

/*
 * -- Typedefs for FileXNaming_FileENC Method Procedures
 */
SOMEXTERN {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef _IDL_SEQUENCE_TypeCode   SOMLINK somTP_FileXNaming_FileENC__get_allowed_object_types(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC__get_allowed_object_types *somTD_FileXNaming_FileENC__get_allowed_object_types;
typedef _IDL_SEQUENCE_TypeCode   SOMLINK somTP_FileXNaming_FileENC__get_allowed_property_types(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC__get_allowed_property_types *somTD_FileXNaming_FileENC__get_allowed_property_types;
typedef _IDL_SEQUENCE_string   SOMLINK somTP_FileXNaming_FileENC__get_allowed_property_names(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC__get_allowed_property_names *somTD_FileXNaming_FileENC__get_allowed_property_names;
typedef _IDL_SEQUENCE_TypeCode   SOMLINK somTP_FileXNaming_FileENC__get_shared_property_types(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC__get_shared_property_types *somTD_FileXNaming_FileENC__get_shared_property_types;
typedef _IDL_SEQUENCE_string   SOMLINK somTP_FileXNaming_FileENC__get_shared_property_names(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC__get_shared_property_names *somTD_FileXNaming_FileENC__get_shared_property_names;
typedef unsigned short   SOMLINK somTP_FileXNaming_FileENC_get_features_supported(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_get_features_supported *somTD_FileXNaming_FileENC_get_features_supported;
typedef void   SOMLINK somTP_FileXNaming_FileENC_add_property(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_Property* prop);
typedef somTP_FileXNaming_FileENC_add_property *somTD_FileXNaming_FileENC_add_property;
typedef void   SOMLINK somTP_FileXNaming_FileENC_add_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_PropertyList* props);
typedef somTP_FileXNaming_FileENC_add_properties *somTD_FileXNaming_FileENC_add_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_bind_with_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj, 
		ExtendedNaming_PropertyList* prop);
typedef somTP_FileXNaming_FileENC_bind_with_properties *somTD_FileXNaming_FileENC_bind_with_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_bind_context_with_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_ExtendedNamingContext* obj, 
		ExtendedNaming_PropertyList* props);
typedef somTP_FileXNaming_FileENC_bind_context_with_properties *somTD_FileXNaming_FileENC_bind_context_with_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_rebind_with_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj, 
		ExtendedNaming_PropertyList* prop);
typedef somTP_FileXNaming_FileENC_rebind_with_properties *somTD_FileXNaming_FileENC_rebind_with_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_rebind_context_with_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_ExtendedNamingContext* obj, 
		ExtendedNaming_PropertyList* props);
typedef somTP_FileXNaming_FileENC_rebind_context_with_properties *somTD_FileXNaming_FileENC_rebind_context_with_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_share_property(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* target_n, 
		ExtendedNaming_ExtendedNamingContext* source_enc, 
		CosNaming_Name* source_n, 
		CosNaming_Istring pname);
typedef somTP_FileXNaming_FileENC_share_property *somTD_FileXNaming_FileENC_share_property;
typedef void   SOMLINK somTP_FileXNaming_FileENC_share_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* target_n, 
		ExtendedNaming_ExtendedNamingContext* source_enc, 
		CosNaming_Name* source_n, 
		ExtendedNaming_IList* pnames);
typedef somTP_FileXNaming_FileENC_share_properties *somTD_FileXNaming_FileENC_share_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_unshare_property(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring property_name);
typedef somTP_FileXNaming_FileENC_unshare_property *somTD_FileXNaming_FileENC_unshare_property;
typedef void   SOMLINK somTP_FileXNaming_FileENC_unshare_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_IList* pnames);
typedef somTP_FileXNaming_FileENC_unshare_properties *somTD_FileXNaming_FileENC_unshare_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_list_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyBindingList* pbl, 
		ExtendedNaming_PropertyBindingIterator** rest);
typedef somTP_FileXNaming_FileENC_list_properties *somTD_FileXNaming_FileENC_list_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_get_property(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring pn, 
		ExtendedNaming_Property* prop);
typedef somTP_FileXNaming_FileENC_get_property *somTD_FileXNaming_FileENC_get_property;
typedef void   SOMLINK somTP_FileXNaming_FileENC_get_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_IList* inames, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_FileXNaming_FileENC_get_properties *somTD_FileXNaming_FileENC_get_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_get_all_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_FileXNaming_FileENC_get_all_properties *somTD_FileXNaming_FileENC_get_all_properties;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_resolve_with_property(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring prop, 
		any* v);
typedef somTP_FileXNaming_FileENC_resolve_with_property *somTD_FileXNaming_FileENC_resolve_with_property;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_resolve_with_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_IList* inames, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_FileXNaming_FileENC_resolve_with_properties *somTD_FileXNaming_FileENC_resolve_with_properties;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_resolve_with_all_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* props, 
		ExtendedNaming_PropertyIterator** rest);
typedef somTP_FileXNaming_FileENC_resolve_with_all_properties *somTD_FileXNaming_FileENC_resolve_with_all_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_remove_property(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_Istring prop);
typedef somTP_FileXNaming_FileENC_remove_property *somTD_FileXNaming_FileENC_remove_property;
typedef void   SOMLINK somTP_FileXNaming_FileENC_remove_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		ExtendedNaming_IList* plist);
typedef somTP_FileXNaming_FileENC_remove_properties *somTD_FileXNaming_FileENC_remove_properties;
typedef void   SOMLINK somTP_FileXNaming_FileENC_remove_all_properties(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_FileXNaming_FileENC_remove_all_properties *somTD_FileXNaming_FileENC_remove_all_properties;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_find_any(FileXNaming_FileENC *somSelf, Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance);
typedef somTP_FileXNaming_FileENC_find_any *somTD_FileXNaming_FileENC_find_any;
typedef void   SOMLINK somTP_FileXNaming_FileENC_find_all(FileXNaming_FileENC *somSelf, Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance, 
		unsigned long howMany, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator** bi);
typedef somTP_FileXNaming_FileENC_find_all *somTD_FileXNaming_FileENC_find_all;
typedef void   SOMLINK somTP_FileXNaming_FileENC_find_any_name_binding(FileXNaming_FileENC *somSelf, Environment *ev, 
		ExtendedNaming_ExtendedNamingContext_Constraint c, 
		unsigned long distance, 
		CosNaming_Binding* bi);
typedef somTP_FileXNaming_FileENC_find_any_name_binding *somTD_FileXNaming_FileENC_find_any_name_binding;
typedef void   SOMLINK somTP_FileXNaming_FileENC_add_index(FileXNaming_FileENC *somSelf, Environment *ev, 
		ExtendedNaming_IndexDescriptor* i);
typedef somTP_FileXNaming_FileENC_add_index *somTD_FileXNaming_FileENC_add_index;
typedef void   SOMLINK somTP_FileXNaming_FileENC_list_indexes(FileXNaming_FileENC *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_IndexDescriptorList* il, 
		ExtendedNaming_IndexIterator** rest);
typedef somTP_FileXNaming_FileENC_list_indexes *somTD_FileXNaming_FileENC_list_indexes;
typedef void   SOMLINK somTP_FileXNaming_FileENC_remove_index(FileXNaming_FileENC *somSelf, Environment *ev, 
		ExtendedNaming_IndexDescriptor* i);
typedef somTP_FileXNaming_FileENC_remove_index *somTD_FileXNaming_FileENC_remove_index;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDestruct(FileXNaming_FileENC *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_FileXNaming_FileENC_somDestruct *somTD_FileXNaming_FileENC_somDestruct;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDefaultInit(FileXNaming_FileENC *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_FileXNaming_FileENC_somDefaultInit *somTD_FileXNaming_FileENC_somDefaultInit;
typedef void   SOMLINK somTP_FileXNaming_FileENC_bind(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj);
typedef somTP_FileXNaming_FileENC_bind *somTD_FileXNaming_FileENC_bind;
typedef void   SOMLINK somTP_FileXNaming_FileENC_rebind(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject* obj);
typedef somTP_FileXNaming_FileENC_rebind *somTD_FileXNaming_FileENC_rebind;
typedef void   SOMLINK somTP_FileXNaming_FileENC_bind_context(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext* nc);
typedef somTP_FileXNaming_FileENC_bind_context *somTD_FileXNaming_FileENC_bind_context;
typedef void   SOMLINK somTP_FileXNaming_FileENC_rebind_context(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext* nc);
typedef somTP_FileXNaming_FileENC_rebind_context *somTD_FileXNaming_FileENC_rebind_context;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_resolve(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_FileXNaming_FileENC_resolve *somTD_FileXNaming_FileENC_resolve;
typedef void   SOMLINK somTP_FileXNaming_FileENC_unbind(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_FileXNaming_FileENC_unbind *somTD_FileXNaming_FileENC_unbind;
typedef CosNaming_NamingContext*   SOMLINK somTP_FileXNaming_FileENC_new_context(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_new_context *somTD_FileXNaming_FileENC_new_context;
typedef CosNaming_NamingContext*   SOMLINK somTP_FileXNaming_FileENC_bind_new_context(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_FileXNaming_FileENC_bind_new_context *somTD_FileXNaming_FileENC_bind_new_context;
typedef void   SOMLINK somTP_FileXNaming_FileENC_destroy(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_destroy *somTD_FileXNaming_FileENC_destroy;
typedef void   SOMLINK somTP_FileXNaming_FileENC_list(FileXNaming_FileENC *somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator** bi);
typedef somTP_FileXNaming_FileENC_list *somTD_FileXNaming_FileENC_list;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDefaultCopyInit(FileXNaming_FileENC *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultCopyInit *somTD_FileXNaming_FileENC_somDefaultCopyInit;
typedef FileXNaming_FileENC*   SOMLINK somTP_FileXNaming_FileENC_somDefaultAssign(FileXNaming_FileENC *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultAssign *somTD_FileXNaming_FileENC_somDefaultAssign;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDefaultConstCopyInit(FileXNaming_FileENC *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultConstCopyInit *somTD_FileXNaming_FileENC_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDefaultVCopyInit(FileXNaming_FileENC *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultVCopyInit *somTD_FileXNaming_FileENC_somDefaultVCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDefaultConstVCopyInit(FileXNaming_FileENC *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultConstVCopyInit *somTD_FileXNaming_FileENC_somDefaultConstVCopyInit;
typedef FileXNaming_FileENC*   SOMLINK somTP_FileXNaming_FileENC_somDefaultConstAssign(FileXNaming_FileENC *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultConstAssign *somTD_FileXNaming_FileENC_somDefaultConstAssign;
typedef FileXNaming_FileENC*   SOMLINK somTP_FileXNaming_FileENC_somDefaultVAssign(FileXNaming_FileENC *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultVAssign *somTD_FileXNaming_FileENC_somDefaultVAssign;
typedef FileXNaming_FileENC*   SOMLINK somTP_FileXNaming_FileENC_somDefaultConstVAssign(FileXNaming_FileENC *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileENC_somDefaultConstVAssign *somTD_FileXNaming_FileENC_somDefaultConstVAssign;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somInit(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somInit *somTD_FileXNaming_FileENC_somInit;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somUninit(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somUninit *somTD_FileXNaming_FileENC_somUninit;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somFree(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somFree *somTD_FileXNaming_FileENC_somFree;
typedef SOMClass*   SOMLINK somTP_FileXNaming_FileENC_somGetClass(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somGetClass *somTD_FileXNaming_FileENC_somGetClass;
typedef string   SOMLINK somTP_FileXNaming_FileENC_somGetClassName(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somGetClassName *somTD_FileXNaming_FileENC_somGetClassName;
typedef long   SOMLINK somTP_FileXNaming_FileENC_somGetSize(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somGetSize *somTD_FileXNaming_FileENC_somGetSize;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somIsA(FileXNaming_FileENC *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FileENC_somIsA *somTD_FileXNaming_FileENC_somIsA;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somIsInstanceOf(FileXNaming_FileENC *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FileENC_somIsInstanceOf *somTD_FileXNaming_FileENC_somIsInstanceOf;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somRespondsTo(FileXNaming_FileENC *somSelf, 
		somId mId);
typedef somTP_FileXNaming_FileENC_somRespondsTo *somTD_FileXNaming_FileENC_somRespondsTo;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somDispatch(FileXNaming_FileENC *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FileENC_somDispatch *somTD_FileXNaming_FileENC_somDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somClassDispatch(FileXNaming_FileENC *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FileENC_somClassDispatch *somTD_FileXNaming_FileENC_somClassDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somCastObj(FileXNaming_FileENC *somSelf, 
		SOMClass* castedCls);
typedef somTP_FileXNaming_FileENC_somCastObj *somTD_FileXNaming_FileENC_somCastObj;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_somResetObj(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somResetObj *somTD_FileXNaming_FileENC_somResetObj;
typedef FileXNaming_FileENC*   SOMLINK somTP_FileXNaming_FileENC_somPrintSelf(FileXNaming_FileENC *somSelf);
typedef somTP_FileXNaming_FileENC_somPrintSelf *somTD_FileXNaming_FileENC_somPrintSelf;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDumpSelf(FileXNaming_FileENC *somSelf, 
		long level);
typedef somTP_FileXNaming_FileENC_somDumpSelf *somTD_FileXNaming_FileENC_somDumpSelf;
typedef void   SOMLINK somTP_FileXNaming_FileENC_somDumpSelfInt(FileXNaming_FileENC *somSelf, 
		long level);
typedef somTP_FileXNaming_FileENC_somDumpSelfInt *somTD_FileXNaming_FileENC_somDumpSelfInt;
typedef void   SOMLINK somTP_FileXNaming_FileENC_reinit(FileXNaming_FileENC *somSelf, Environment *ev, 
		somOS_ServiceBase_metastate_t* meta_data);
typedef somTP_FileXNaming_FileENC_reinit *somTD_FileXNaming_FileENC_reinit;
typedef void   SOMLINK somTP_FileXNaming_FileENC_capture(FileXNaming_FileENC *somSelf, Environment *ev, 
		somOS_ServiceBase_metastate_t* meta_data);
typedef somTP_FileXNaming_FileENC_capture *somTD_FileXNaming_FileENC_capture;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_GetInstanceManager(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_GetInstanceManager *somTD_FileXNaming_FileENC_GetInstanceManager;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_init_for_object_creation(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_init_for_object_creation *somTD_FileXNaming_FileENC_init_for_object_creation;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_init_for_object_reactivation(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_init_for_object_reactivation *somTD_FileXNaming_FileENC_init_for_object_reactivation;
typedef SOMObject*   SOMLINK somTP_FileXNaming_FileENC_init_for_object_copy(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_init_for_object_copy *somTD_FileXNaming_FileENC_init_for_object_copy;
typedef void   SOMLINK somTP_FileXNaming_FileENC_uninit_for_object_move(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_uninit_for_object_move *somTD_FileXNaming_FileENC_uninit_for_object_move;
typedef void   SOMLINK somTP_FileXNaming_FileENC_uninit_for_object_passivation(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_uninit_for_object_passivation *somTD_FileXNaming_FileENC_uninit_for_object_passivation;
typedef void   SOMLINK somTP_FileXNaming_FileENC_uninit_for_object_destruction(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC_uninit_for_object_destruction *somTD_FileXNaming_FileENC_uninit_for_object_destruction;
typedef boolean   SOMLINK somTP_FileXNaming_FileENC_is_identical(FileXNaming_FileENC *somSelf, Environment *ev, 
		CosObjectIdentity_IdentifiableObject* other_object);
typedef somTP_FileXNaming_FileENC_is_identical *somTD_FileXNaming_FileENC_is_identical;
typedef CosObjectIdentity_ObjectIdentifier   SOMLINK somTP_FileXNaming_FileENC__get_constant_random_id(FileXNaming_FileENC *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileENC__get_constant_random_id *somTD_FileXNaming_FileENC__get_constant_random_id;
}

#endif /* FileXNaming_FileENC_API */


/*
 * -- The C++ Wrapper Class for FileXNaming_FileENC
 */
class FileXNaming_FileENC : public ExtendedNaming_ExtendedNamingContext, public somOS_ServiceBase
{
/*
 *  default implementation of BindingIterator
 */
public:

// FileXNaming_FileENC::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 (!_FileXNaming_FileENC) FileXNaming_FileENCNewClass(FileXNaming_FileENC_MajorVersion,FileXNaming_FileENC_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_FileXNaming_FileENC)));
}

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* 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_FileXNaming_FileENC__get_allowed_object_types)(ExtendedNaming_ExtendedNamingContextClassData._get_allowed_object_types))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC__get_allowed_property_types)(ExtendedNaming_ExtendedNamingContextClassData._get_allowed_property_types))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC__get_allowed_property_names)(ExtendedNaming_ExtendedNamingContextClassData._get_allowed_property_names))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC__get_shared_property_types)(ExtendedNaming_ExtendedNamingContextClassData._get_shared_property_types))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC__get_shared_property_names)(ExtendedNaming_ExtendedNamingContextClassData._get_shared_property_names))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_get_features_supported)(ExtendedNaming_ExtendedNamingContextClassData.get_features_supported))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_add_property)(ExtendedNaming_ExtendedNamingContextClassData.add_property))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_add_properties)(ExtendedNaming_ExtendedNamingContextClassData.add_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_bind_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.bind_with_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_bind_context_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.bind_context_with_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_rebind_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.rebind_with_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_rebind_context_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.rebind_context_with_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_share_property)(ExtendedNaming_ExtendedNamingContextClassData.share_property))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_share_properties)(ExtendedNaming_ExtendedNamingContextClassData.share_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_unshare_property)(ExtendedNaming_ExtendedNamingContextClassData.unshare_property))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_unshare_properties)(ExtendedNaming_ExtendedNamingContextClassData.unshare_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_list_properties)(ExtendedNaming_ExtendedNamingContextClassData.list_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_get_property)(ExtendedNaming_ExtendedNamingContextClassData.get_property))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_get_properties)(ExtendedNaming_ExtendedNamingContextClassData.get_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_get_all_properties)(ExtendedNaming_ExtendedNamingContextClassData.get_all_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_resolve_with_property)(ExtendedNaming_ExtendedNamingContextClassData.resolve_with_property))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_resolve_with_properties)(ExtendedNaming_ExtendedNamingContextClassData.resolve_with_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_resolve_with_all_properties)(ExtendedNaming_ExtendedNamingContextClassData.resolve_with_all_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_remove_property)(ExtendedNaming_ExtendedNamingContextClassData.remove_property))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_remove_properties)(ExtendedNaming_ExtendedNamingContextClassData.remove_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_remove_all_properties)(ExtendedNaming_ExtendedNamingContextClassData.remove_all_properties))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_find_any)(ExtendedNaming_ExtendedNamingContextClassData.find_any))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_find_all)(ExtendedNaming_ExtendedNamingContextClassData.find_all))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_find_any_name_binding)(ExtendedNaming_ExtendedNamingContextClassData.find_any_name_binding))(((FileXNaming_FileENC *)((void *)this)), ev,c,distance,bi)
	);
}


/* method: add_index */
void   add_index(Environment *ev, 
		ExtendedNaming_IndexDescriptor* i)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_ExtendedNamingContext),
	 ((somTD_FileXNaming_FileENC_add_index)(ExtendedNaming_ExtendedNamingContextClassData.add_index))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_list_indexes)(ExtendedNaming_ExtendedNamingContextClassData.list_indexes))(((FileXNaming_FileENC *)((void *)this)), ev,howMany,il,rest)
	);
}


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


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


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


/* 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_FileXNaming_FileENC_bind)(CosNaming_NamingContextClassData.bind))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_rebind)(CosNaming_NamingContextClassData.rebind))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_bind_context)(CosNaming_NamingContextClassData.bind_context))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_rebind_context)(CosNaming_NamingContextClassData.rebind_context))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_resolve)(CosNaming_NamingContextClassData.resolve))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_unbind)(CosNaming_NamingContextClassData.unbind))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_new_context)(CosNaming_NamingContextClassData.new_context))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_bind_new_context)(CosNaming_NamingContextClassData.bind_new_context))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_destroy)(CosNaming_NamingContextClassData.destroy))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_list)(CosNaming_NamingContextClassData.list))(((FileXNaming_FileENC *)((void *)this)), ev,how_many,bl,bi)
	);
}


/* 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_FileXNaming_FileENC_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((FileXNaming_FileENC *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
FileXNaming_FileENC*  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_FileXNaming_FileENC_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((FileXNaming_FileENC *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_FileXNaming_FileENC_somGetSize)(SOMObjectClassData.somGetSize))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somIsA)(SOMObjectClassData.somIsA))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somCastObj)(SOMObjectClassData.somCastObj))(((FileXNaming_FileENC *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
FileXNaming_FileENC*  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_FileXNaming_FileENC_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((FileXNaming_FileENC *)((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_FileXNaming_FileENC_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((FileXNaming_FileENC *)((void *)this)),level)
	);
}


/* method: reinit */
void   reinit(Environment *ev, 
		somOS_ServiceBase_metastate_t* meta_data)
{
/*
 *  - somOS::Server calls this method when (1) an object is reactivated
 *    (in somdSOMObjFromRef()) and (2) somOS::Server is asked to
 *    restore_metastate().
 *  - Services should override it do reinitialization using meta_data.
 *  - reinitializes the identity metadata
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_reinit)(somOS_ServiceBaseClassData.reinit))(((FileXNaming_FileENC *)((void *)this)), ev,meta_data)
	);
}


/* method: capture */
void   capture(Environment *ev, 
		somOS_ServiceBase_metastate_t* meta_data)
{
/*
 *  - somos::Server call this method from store_metastate().
 *  - Services should override this method to supply proper metadata.
 *  - Capture() must free typecode in
 *           meta_data._buffer[service_id].service_metastate._type
 *     and data in ...._buffer prior to filling it using SOMFree
 *  - Allocates memory to store metastate. It is somOS::Server's
 *    resposibility to free the metastate returned by services.
 *  - captures identity metadata
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_capture)(somOS_ServiceBaseClassData.capture))(((FileXNaming_FileENC *)((void *)this)), ev,meta_data)
	);
}


/* method: GetInstanceManager */
SOMObject*   GetInstanceManager(Environment *ev)
{
/*
 *  - Returns the server object which is either
 *             an instance somOS::Server,
 *         OR  an instance of SOMDServer,
 *         OR  OBJECT_NIL
 *  This method is usually not overriden.
 *  This method allows clients to get a reference to the server
 *  object. It is introduced as somdFindServer... methods have been
 *  deprecated.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_GetInstanceManager)(somOS_ServiceBaseClassData.GetInstanceManager))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: init_for_object_creation */
SOMObject*   init_for_object_creation(Environment *ev)
{
/*
 *  somOS::somOS::Server calls this method from somdCreateObj().
 *  - Services should override this method to do proper initialization
 *    at the time of object creation. (if necessary)
 *  - it initializes the data for CosObjectIdentity
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_init_for_object_creation)(somOS_ServiceBaseClassData.init_for_object_creation))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: init_for_object_reactivation */
SOMObject*   init_for_object_reactivation(Environment *ev)
{
/*
 *  - somOS::Server calls this method when an object is reactivated
 *    in somdSOMObjFromRef() (but prior to calling reinit())
 *  - Services should override this method to do proper initialization
 *    at the time of object reactivation. (if necessary)
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_init_for_object_reactivation)(somOS_ServiceBaseClassData.init_for_object_reactivation))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: init_for_object_copy */
SOMObject*   init_for_object_copy(Environment *ev)
{
/*
 *  Abstract method.
 *  - Services should override this method to do proper initialization
 *    at the time of object copy. (if necessary)
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_init_for_object_copy)(somOS_ServiceBaseClassData.init_for_object_copy))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: uninit_for_object_move */
void   uninit_for_object_move(Environment *ev)
{
/*
 *  Abstract method.
 *  - Services should override this method to do proper uninitialization
 *    at the time of object move. (if necessary)
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_uninit_for_object_move)(somOS_ServiceBaseClassData.uninit_for_object_move))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: uninit_for_object_passivation */
void   uninit_for_object_passivation(Environment *ev)
{
/*
 *  - Asks somOS::Server to remove an entry from reference-data-table.
 *  - No exceptions are raised. If there is no entry in the
 *    reference-data-table then the operation is considered to be successful.
 *  - somOS::Server calls this method when an object is passivated
 *    (passivate_object()).
 *  - Services should override this method to do proper uninitialization
 *    at the time of object passivation. (if necessary)
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_uninit_for_object_passivation)(somOS_ServiceBaseClassData.uninit_for_object_passivation))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: uninit_for_object_destruction */
void   uninit_for_object_destruction(Environment *ev)
{
/*
 *  - somOS::Server calls this method when a properly initialized object
 *    is destroyed. In particular, from somdDeleteObj().
 *  - Services should override this method to do proper uninitialization
 *    at the time of object destruction. (if necessary)
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_somOS_ServiceBase),
	 ((somTD_FileXNaming_FileENC_uninit_for_object_destruction)(somOS_ServiceBaseClassData.uninit_for_object_destruction))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}


/* method: is_identical */
boolean   is_identical(Environment *ev, 
		CosObjectIdentity_IdentifiableObject* other_object)
{
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosObjectIdentity_IdentifiableObject),
	 ((somTD_FileXNaming_FileENC_is_identical)(CosObjectIdentity_IdentifiableObjectClassData.is_identical))(((FileXNaming_FileENC *)((void *)this)), ev,other_object)
	);
}


/* method: _get_constant_random_id */
CosObjectIdentity_ObjectIdentifier   _get_constant_random_id(Environment *ev)
{
   return 	(
	 SOM_TestCls(this,_SOMCLASS_CosObjectIdentity_IdentifiableObject),
	 ((somTD_FileXNaming_FileENC__get_constant_random_id)(CosObjectIdentity_IdentifiableObjectClassData._get_constant_random_id))(((FileXNaming_FileENC *)((void *)this)), ev)
	);
}



};   /* FileXNaming_FileENC */



#endif       /* SOM_FileXNaming_FileENC_xh */

#ifndef SOM_FileXNaming_FileBindingIterator_xh
#define SOM_FileXNaming_FileBindingIterator_xh


#define FileXNaming_FileBindingIterator_MajorVersion 0
#define FileXNaming_FileBindingIterator_MinorVersion 0
class FileXNaming_FileBindingIterator;

/* 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 FileXNaming_FileBindingIterator_API
#define FileXNaming_FileBindingIterator_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 FileXNaming_FileBindingIterator_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 FileXNaming_FileBindingIterator_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 FileXNaming_FileBindingIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnamingf SOMClass * SOMLINK FileXNaming_FileBindingIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct FileXNaming_FileBindingIteratorClassDataStructure {
	SOMClass *classObject;
	somMToken FileBindingIterator_Init1;
	somMToken FileBindingIterator_Init2;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FileBindingIteratorClassData;
SOMEXTERN struct FileXNaming_FileBindingIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FileBindingIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_FileXNaming_FileBindingIterator (FileXNaming_FileBindingIteratorClassData.classObject)
#ifndef SOMGD_FileXNaming_FileBindingIterator
    #if (defined(_FileXNaming_FileBindingIterator) || defined(__FileXNaming_FileBindingIterator))
        #undef _FileXNaming_FileBindingIterator
        #undef __FileXNaming_FileBindingIterator
        #define SOMGD_FileXNaming_FileBindingIterator 1
    #else
        #define _FileXNaming_FileBindingIterator _SOMCLASS_FileXNaming_FileBindingIterator
    #endif /* _FileXNaming_FileBindingIterator */
#endif /* SOMGD_FileXNaming_FileBindingIterator */
#define FileXNaming_FileBindingIterator_classObj _SOMCLASS_FileXNaming_FileBindingIterator
#define _SOMMTOKEN_FileXNaming_FileBindingIterator(method) ((somMToken)FileXNaming_FileBindingIteratorClassData.method)

/*
 * -- Typedefs for FileXNaming_FileBindingIterator Method Procedures
 */
SOMEXTERN {
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_FileBindingIterator_Init1(FileXNaming_FileBindingIterator *somSelf, Environment *ev, 
		somInitCtrl* ctrl, 
		FileXNaming_FileBindingIterator_stringSeq* key, 
		string databaseFile);
typedef somTP_FileXNaming_FileBindingIterator_FileBindingIterator_Init1 *somTD_FileXNaming_FileBindingIterator_FileBindingIterator_Init1;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_FileBindingIterator_Init2(FileXNaming_FileBindingIterator *somSelf, Environment *ev, 
		somInitCtrl* ctrl, 
		CosNaming_BindingList* bl);
typedef somTP_FileXNaming_FileBindingIterator_FileBindingIterator_Init2 *somTD_FileXNaming_FileBindingIterator_FileBindingIterator_Init2;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_next_one(FileXNaming_FileBindingIterator *somSelf, Environment *ev, 
		CosNaming_Binding* b);
typedef somTP_FileXNaming_FileBindingIterator_next_one *somTD_FileXNaming_FileBindingIterator_next_one;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_next_n(FileXNaming_FileBindingIterator *somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl);
typedef somTP_FileXNaming_FileBindingIterator_next_n *somTD_FileXNaming_FileBindingIterator_next_n;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_destroy(FileXNaming_FileBindingIterator *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileBindingIterator_destroy *somTD_FileXNaming_FileBindingIterator_destroy;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultInit(FileXNaming_FileBindingIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultInit *somTD_FileXNaming_FileBindingIterator_somDefaultInit;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDestruct(FileXNaming_FileBindingIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_FileXNaming_FileBindingIterator_somDestruct *somTD_FileXNaming_FileBindingIterator_somDestruct;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultCopyInit(FileXNaming_FileBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultCopyInit *somTD_FileXNaming_FileBindingIterator_somDefaultCopyInit;
typedef FileXNaming_FileBindingIterator*   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultAssign(FileXNaming_FileBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultAssign *somTD_FileXNaming_FileBindingIterator_somDefaultAssign;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultConstCopyInit(FileXNaming_FileBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultConstCopyInit *somTD_FileXNaming_FileBindingIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultVCopyInit(FileXNaming_FileBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultVCopyInit *somTD_FileXNaming_FileBindingIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultConstVCopyInit(FileXNaming_FileBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultConstVCopyInit *somTD_FileXNaming_FileBindingIterator_somDefaultConstVCopyInit;
typedef FileXNaming_FileBindingIterator*   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultConstAssign(FileXNaming_FileBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultConstAssign *somTD_FileXNaming_FileBindingIterator_somDefaultConstAssign;
typedef FileXNaming_FileBindingIterator*   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultVAssign(FileXNaming_FileBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultVAssign *somTD_FileXNaming_FileBindingIterator_somDefaultVAssign;
typedef FileXNaming_FileBindingIterator*   SOMLINK somTP_FileXNaming_FileBindingIterator_somDefaultConstVAssign(FileXNaming_FileBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileBindingIterator_somDefaultConstVAssign *somTD_FileXNaming_FileBindingIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somInit(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somInit *somTD_FileXNaming_FileBindingIterator_somInit;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somUninit(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somUninit *somTD_FileXNaming_FileBindingIterator_somUninit;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somFree(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somFree *somTD_FileXNaming_FileBindingIterator_somFree;
typedef SOMClass*   SOMLINK somTP_FileXNaming_FileBindingIterator_somGetClass(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somGetClass *somTD_FileXNaming_FileBindingIterator_somGetClass;
typedef string   SOMLINK somTP_FileXNaming_FileBindingIterator_somGetClassName(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somGetClassName *somTD_FileXNaming_FileBindingIterator_somGetClassName;
typedef long   SOMLINK somTP_FileXNaming_FileBindingIterator_somGetSize(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somGetSize *somTD_FileXNaming_FileBindingIterator_somGetSize;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somIsA(FileXNaming_FileBindingIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FileBindingIterator_somIsA *somTD_FileXNaming_FileBindingIterator_somIsA;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somIsInstanceOf(FileXNaming_FileBindingIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FileBindingIterator_somIsInstanceOf *somTD_FileXNaming_FileBindingIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somRespondsTo(FileXNaming_FileBindingIterator *somSelf, 
		somId mId);
typedef somTP_FileXNaming_FileBindingIterator_somRespondsTo *somTD_FileXNaming_FileBindingIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somDispatch(FileXNaming_FileBindingIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FileBindingIterator_somDispatch *somTD_FileXNaming_FileBindingIterator_somDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somClassDispatch(FileXNaming_FileBindingIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FileBindingIterator_somClassDispatch *somTD_FileXNaming_FileBindingIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somCastObj(FileXNaming_FileBindingIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_FileXNaming_FileBindingIterator_somCastObj *somTD_FileXNaming_FileBindingIterator_somCastObj;
typedef boolean   SOMLINK somTP_FileXNaming_FileBindingIterator_somResetObj(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somResetObj *somTD_FileXNaming_FileBindingIterator_somResetObj;
typedef FileXNaming_FileBindingIterator*   SOMLINK somTP_FileXNaming_FileBindingIterator_somPrintSelf(FileXNaming_FileBindingIterator *somSelf);
typedef somTP_FileXNaming_FileBindingIterator_somPrintSelf *somTD_FileXNaming_FileBindingIterator_somPrintSelf;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDumpSelf(FileXNaming_FileBindingIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FileBindingIterator_somDumpSelf *somTD_FileXNaming_FileBindingIterator_somDumpSelf;
typedef void   SOMLINK somTP_FileXNaming_FileBindingIterator_somDumpSelfInt(FileXNaming_FileBindingIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FileBindingIterator_somDumpSelfInt *somTD_FileXNaming_FileBindingIterator_somDumpSelfInt;
}

#endif /* FileXNaming_FileBindingIterator_API */


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

// FileXNaming_FileBindingIterator::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 (!_FileXNaming_FileBindingIterator) FileXNaming_FileBindingIteratorNewClass(FileXNaming_FileBindingIterator_MajorVersion,FileXNaming_FileBindingIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_FileXNaming_FileBindingIterator)));
}

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

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

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

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

FileXNaming_FileBindingIterator(Environment *ev,FileXNaming_FileBindingIterator_stringSeq* key,string databaseFile) 
{
   FileBindingIterator_Init1(ev,0,key,databaseFile);
}

FileXNaming_FileBindingIterator(Environment *ev,CosNaming_BindingList* bl) 
{
   FileBindingIterator_Init2(ev,0,bl);
}


/* initializer method: FileBindingIterator_Init1 */
void   FileBindingIterator_Init1(Environment *ev, 
		somInitCtrl* ctrl, 
		FileXNaming_FileBindingIterator_stringSeq* key, 
		string databaseFile)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_FileXNaming_FileBindingIterator),
	 ((somTD_FileXNaming_FileBindingIterator_FileBindingIterator_Init1)(FileXNaming_FileBindingIteratorClassData.FileBindingIterator_Init1))(((FileXNaming_FileBindingIterator *)((void *)this)), ev,ctrl,key,databaseFile)
	);
}


/* initializer method: FileBindingIterator_Init2 */
void   FileBindingIterator_Init2(Environment *ev, 
		somInitCtrl* ctrl, 
		CosNaming_BindingList* bl)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_FileXNaming_FileBindingIterator),
	 ((somTD_FileXNaming_FileBindingIterator_FileBindingIterator_Init2)(FileXNaming_FileBindingIteratorClassData.FileBindingIterator_Init2))(((FileXNaming_FileBindingIterator *)((void *)this)), ev,ctrl,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_FileXNaming_FileBindingIterator_next_one)(CosNaming_BindingIteratorClassData.next_one))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_next_n)(CosNaming_BindingIteratorClassData.next_n))(((FileXNaming_FileBindingIterator *)((void *)this)), ev,how_many,bl)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_CosNaming_BindingIterator),
	 ((somTD_FileXNaming_FileBindingIterator_destroy)(CosNaming_BindingIteratorClassData.destroy))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDestruct)(SOMObjectClassData.somDestruct))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((FileXNaming_FileBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
FileXNaming_FileBindingIterator*  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_FileXNaming_FileBindingIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((FileXNaming_FileBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_FileXNaming_FileBindingIterator_somGetSize)(SOMObjectClassData.somGetSize))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somIsA)(SOMObjectClassData.somIsA))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somCastObj)(SOMObjectClassData.somCastObj))(((FileXNaming_FileBindingIterator *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
FileXNaming_FileBindingIterator*  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_FileXNaming_FileBindingIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((FileXNaming_FileBindingIterator *)((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_FileXNaming_FileBindingIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((FileXNaming_FileBindingIterator *)((void *)this)),level)
	);
}



};   /* FileXNaming_FileBindingIterator */



#endif       /* SOM_FileXNaming_FileBindingIterator_xh */

#ifndef SOM_FileXNaming_FPropertyBindingIterator_xh
#define SOM_FileXNaming_FPropertyBindingIterator_xh


#define FileXNaming_FPropertyBindingIterator_MajorVersion 0
#define FileXNaming_FPropertyBindingIterator_MinorVersion 0
class FileXNaming_FPropertyBindingIterator;

/* Parents */
#ifndef SOM_ExtendedNaming_PropertyBindingIterator_xh
#ifdef SOMLOCALINCLUDES
#include "xnaming.xh"
#else
#include <xnaming.xh>
#endif
#endif

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

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

/*
 * Start of bindings for IDL types
 */


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

/*
 * A function to create the FileXNaming_FPropertyBindingIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnamingf SOMClass * SOMLINK FileXNaming_FPropertyBindingIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct FileXNaming_FPropertyBindingIteratorClassDataStructure {
	SOMClass *classObject;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FPropertyBindingIteratorClassData;
SOMEXTERN struct FileXNaming_FPropertyBindingIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FPropertyBindingIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_FileXNaming_FPropertyBindingIterator (FileXNaming_FPropertyBindingIteratorClassData.classObject)
#ifndef SOMGD_FileXNaming_FPropertyBindingIterator
    #if (defined(_FileXNaming_FPropertyBindingIterator) || defined(__FileXNaming_FPropertyBindingIterator))
        #undef _FileXNaming_FPropertyBindingIterator
        #undef __FileXNaming_FPropertyBindingIterator
        #define SOMGD_FileXNaming_FPropertyBindingIterator 1
    #else
        #define _FileXNaming_FPropertyBindingIterator _SOMCLASS_FileXNaming_FPropertyBindingIterator
    #endif /* _FileXNaming_FPropertyBindingIterator */
#endif /* SOMGD_FileXNaming_FPropertyBindingIterator */
#define FileXNaming_FPropertyBindingIterator_classObj _SOMCLASS_FileXNaming_FPropertyBindingIterator
#define _SOMMTOKEN_FileXNaming_FPropertyBindingIterator(method) ((somMToken)FileXNaming_FPropertyBindingIteratorClassData.method)

/*
 * -- Typedefs for FileXNaming_FPropertyBindingIterator Method Procedures
 */
SOMEXTERN {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_next_one(FileXNaming_FPropertyBindingIterator *somSelf, Environment *ev, 
		ExtendedNaming_PropertyBinding* pb);
typedef somTP_FileXNaming_FPropertyBindingIterator_next_one *somTD_FileXNaming_FPropertyBindingIterator_next_one;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_next_n(FileXNaming_FPropertyBindingIterator *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_PropertyBindingList* il);
typedef somTP_FileXNaming_FPropertyBindingIterator_next_n *somTD_FileXNaming_FPropertyBindingIterator_next_n;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_destroy(FileXNaming_FPropertyBindingIterator *somSelf, Environment *ev);
typedef somTP_FileXNaming_FPropertyBindingIterator_destroy *somTD_FileXNaming_FPropertyBindingIterator_destroy;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultInit(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultInit *somTD_FileXNaming_FPropertyBindingIterator_somDefaultInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDestruct(FileXNaming_FPropertyBindingIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDestruct *somTD_FileXNaming_FPropertyBindingIterator_somDestruct;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultCopyInit(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultCopyInit *somTD_FileXNaming_FPropertyBindingIterator_somDefaultCopyInit;
typedef FileXNaming_FPropertyBindingIterator*   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultAssign(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultAssign *somTD_FileXNaming_FPropertyBindingIterator_somDefaultAssign;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstCopyInit(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstCopyInit *somTD_FileXNaming_FPropertyBindingIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultVCopyInit(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultVCopyInit *somTD_FileXNaming_FPropertyBindingIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstVCopyInit(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstVCopyInit *somTD_FileXNaming_FPropertyBindingIterator_somDefaultConstVCopyInit;
typedef FileXNaming_FPropertyBindingIterator*   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstAssign(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstAssign *somTD_FileXNaming_FPropertyBindingIterator_somDefaultConstAssign;
typedef FileXNaming_FPropertyBindingIterator*   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultVAssign(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultVAssign *somTD_FileXNaming_FPropertyBindingIterator_somDefaultVAssign;
typedef FileXNaming_FPropertyBindingIterator*   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstVAssign(FileXNaming_FPropertyBindingIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDefaultConstVAssign *somTD_FileXNaming_FPropertyBindingIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somInit(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somInit *somTD_FileXNaming_FPropertyBindingIterator_somInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somUninit(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somUninit *somTD_FileXNaming_FPropertyBindingIterator_somUninit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somFree(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somFree *somTD_FileXNaming_FPropertyBindingIterator_somFree;
typedef SOMClass*   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somGetClass(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somGetClass *somTD_FileXNaming_FPropertyBindingIterator_somGetClass;
typedef string   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somGetClassName(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somGetClassName *somTD_FileXNaming_FPropertyBindingIterator_somGetClassName;
typedef long   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somGetSize(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somGetSize *somTD_FileXNaming_FPropertyBindingIterator_somGetSize;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somIsA(FileXNaming_FPropertyBindingIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somIsA *somTD_FileXNaming_FPropertyBindingIterator_somIsA;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somIsInstanceOf(FileXNaming_FPropertyBindingIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FPropertyBindingIterator_somIsInstanceOf *somTD_FileXNaming_FPropertyBindingIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somRespondsTo(FileXNaming_FPropertyBindingIterator *somSelf, 
		somId mId);
typedef somTP_FileXNaming_FPropertyBindingIterator_somRespondsTo *somTD_FileXNaming_FPropertyBindingIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDispatch(FileXNaming_FPropertyBindingIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDispatch *somTD_FileXNaming_FPropertyBindingIterator_somDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somClassDispatch(FileXNaming_FPropertyBindingIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FPropertyBindingIterator_somClassDispatch *somTD_FileXNaming_FPropertyBindingIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somCastObj(FileXNaming_FPropertyBindingIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_FileXNaming_FPropertyBindingIterator_somCastObj *somTD_FileXNaming_FPropertyBindingIterator_somCastObj;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somResetObj(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somResetObj *somTD_FileXNaming_FPropertyBindingIterator_somResetObj;
typedef FileXNaming_FPropertyBindingIterator*   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somPrintSelf(FileXNaming_FPropertyBindingIterator *somSelf);
typedef somTP_FileXNaming_FPropertyBindingIterator_somPrintSelf *somTD_FileXNaming_FPropertyBindingIterator_somPrintSelf;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDumpSelf(FileXNaming_FPropertyBindingIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDumpSelf *somTD_FileXNaming_FPropertyBindingIterator_somDumpSelf;
typedef void   SOMLINK somTP_FileXNaming_FPropertyBindingIterator_somDumpSelfInt(FileXNaming_FPropertyBindingIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FPropertyBindingIterator_somDumpSelfInt *somTD_FileXNaming_FPropertyBindingIterator_somDumpSelfInt;
}

#endif /* FileXNaming_FPropertyBindingIterator_API */


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

// FileXNaming_FPropertyBindingIterator::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 (!_FileXNaming_FPropertyBindingIterator) FileXNaming_FPropertyBindingIteratorNewClass(FileXNaming_FPropertyBindingIterator_MajorVersion,FileXNaming_FPropertyBindingIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_FileXNaming_FPropertyBindingIterator)));
}

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* 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_FileXNaming_FPropertyBindingIterator_next_one)(ExtendedNaming_PropertyBindingIteratorClassData.next_one))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_next_n)(ExtendedNaming_PropertyBindingIteratorClassData.next_n))(((FileXNaming_FPropertyBindingIterator *)((void *)this)), ev,howMany,il)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_PropertyBindingIterator),
	 ((somTD_FileXNaming_FPropertyBindingIterator_destroy)(ExtendedNaming_PropertyBindingIteratorClassData.destroy))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDestruct)(SOMObjectClassData.somDestruct))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((FileXNaming_FPropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
FileXNaming_FPropertyBindingIterator*  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_FileXNaming_FPropertyBindingIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((FileXNaming_FPropertyBindingIterator *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_FileXNaming_FPropertyBindingIterator_somGetSize)(SOMObjectClassData.somGetSize))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somIsA)(SOMObjectClassData.somIsA))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somCastObj)(SOMObjectClassData.somCastObj))(((FileXNaming_FPropertyBindingIterator *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
FileXNaming_FPropertyBindingIterator*  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_FileXNaming_FPropertyBindingIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((FileXNaming_FPropertyBindingIterator *)((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_FileXNaming_FPropertyBindingIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((FileXNaming_FPropertyBindingIterator *)((void *)this)),level)
	);
}



};   /* FileXNaming_FPropertyBindingIterator */



#endif       /* SOM_FileXNaming_FPropertyBindingIterator_xh */

#ifndef SOM_FileXNaming_FPropertyIterator_xh
#define SOM_FileXNaming_FPropertyIterator_xh


#define FileXNaming_FPropertyIterator_MajorVersion 0
#define FileXNaming_FPropertyIterator_MinorVersion 0
class FileXNaming_FPropertyIterator;

/* Parents */
#ifndef SOM_ExtendedNaming_PropertyIterator_xh
#ifdef SOMLOCALINCLUDES
#include "xnaming.xh"
#else
#include <xnaming.xh>
#endif
#endif

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

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

/*
 * Start of bindings for IDL types
 */


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

/*
 * A function to create the FileXNaming_FPropertyIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnamingf SOMClass * SOMLINK FileXNaming_FPropertyIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct FileXNaming_FPropertyIteratorClassDataStructure {
	SOMClass *classObject;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FPropertyIteratorClassData;
SOMEXTERN struct FileXNaming_FPropertyIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FPropertyIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_FileXNaming_FPropertyIterator (FileXNaming_FPropertyIteratorClassData.classObject)
#ifndef SOMGD_FileXNaming_FPropertyIterator
    #if (defined(_FileXNaming_FPropertyIterator) || defined(__FileXNaming_FPropertyIterator))
        #undef _FileXNaming_FPropertyIterator
        #undef __FileXNaming_FPropertyIterator
        #define SOMGD_FileXNaming_FPropertyIterator 1
    #else
        #define _FileXNaming_FPropertyIterator _SOMCLASS_FileXNaming_FPropertyIterator
    #endif /* _FileXNaming_FPropertyIterator */
#endif /* SOMGD_FileXNaming_FPropertyIterator */
#define FileXNaming_FPropertyIterator_classObj _SOMCLASS_FileXNaming_FPropertyIterator
#define _SOMMTOKEN_FileXNaming_FPropertyIterator(method) ((somMToken)FileXNaming_FPropertyIteratorClassData.method)

/*
 * -- Typedefs for FileXNaming_FPropertyIterator Method Procedures
 */
SOMEXTERN {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_next_one(FileXNaming_FPropertyIterator *somSelf, Environment *ev, 
		ExtendedNaming_Property* p);
typedef somTP_FileXNaming_FPropertyIterator_next_one *somTD_FileXNaming_FPropertyIterator_next_one;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_next_n(FileXNaming_FPropertyIterator *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_PropertyList* pl);
typedef somTP_FileXNaming_FPropertyIterator_next_n *somTD_FileXNaming_FPropertyIterator_next_n;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_destroy(FileXNaming_FPropertyIterator *somSelf, Environment *ev);
typedef somTP_FileXNaming_FPropertyIterator_destroy *somTD_FileXNaming_FPropertyIterator_destroy;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somInit(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somInit *somTD_FileXNaming_FPropertyIterator_somInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultInit(FileXNaming_FPropertyIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultInit *somTD_FileXNaming_FPropertyIterator_somDefaultInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDestruct(FileXNaming_FPropertyIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_FileXNaming_FPropertyIterator_somDestruct *somTD_FileXNaming_FPropertyIterator_somDestruct;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultCopyInit(FileXNaming_FPropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultCopyInit *somTD_FileXNaming_FPropertyIterator_somDefaultCopyInit;
typedef FileXNaming_FPropertyIterator*   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultAssign(FileXNaming_FPropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultAssign *somTD_FileXNaming_FPropertyIterator_somDefaultAssign;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultConstCopyInit(FileXNaming_FPropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultConstCopyInit *somTD_FileXNaming_FPropertyIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultVCopyInit(FileXNaming_FPropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultVCopyInit *somTD_FileXNaming_FPropertyIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultConstVCopyInit(FileXNaming_FPropertyIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultConstVCopyInit *somTD_FileXNaming_FPropertyIterator_somDefaultConstVCopyInit;
typedef FileXNaming_FPropertyIterator*   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultConstAssign(FileXNaming_FPropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultConstAssign *somTD_FileXNaming_FPropertyIterator_somDefaultConstAssign;
typedef FileXNaming_FPropertyIterator*   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultVAssign(FileXNaming_FPropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultVAssign *somTD_FileXNaming_FPropertyIterator_somDefaultVAssign;
typedef FileXNaming_FPropertyIterator*   SOMLINK somTP_FileXNaming_FPropertyIterator_somDefaultConstVAssign(FileXNaming_FPropertyIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FPropertyIterator_somDefaultConstVAssign *somTD_FileXNaming_FPropertyIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somUninit(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somUninit *somTD_FileXNaming_FPropertyIterator_somUninit;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somFree(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somFree *somTD_FileXNaming_FPropertyIterator_somFree;
typedef SOMClass*   SOMLINK somTP_FileXNaming_FPropertyIterator_somGetClass(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somGetClass *somTD_FileXNaming_FPropertyIterator_somGetClass;
typedef string   SOMLINK somTP_FileXNaming_FPropertyIterator_somGetClassName(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somGetClassName *somTD_FileXNaming_FPropertyIterator_somGetClassName;
typedef long   SOMLINK somTP_FileXNaming_FPropertyIterator_somGetSize(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somGetSize *somTD_FileXNaming_FPropertyIterator_somGetSize;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somIsA(FileXNaming_FPropertyIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FPropertyIterator_somIsA *somTD_FileXNaming_FPropertyIterator_somIsA;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somIsInstanceOf(FileXNaming_FPropertyIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FPropertyIterator_somIsInstanceOf *somTD_FileXNaming_FPropertyIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somRespondsTo(FileXNaming_FPropertyIterator *somSelf, 
		somId mId);
typedef somTP_FileXNaming_FPropertyIterator_somRespondsTo *somTD_FileXNaming_FPropertyIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somDispatch(FileXNaming_FPropertyIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FPropertyIterator_somDispatch *somTD_FileXNaming_FPropertyIterator_somDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somClassDispatch(FileXNaming_FPropertyIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FPropertyIterator_somClassDispatch *somTD_FileXNaming_FPropertyIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somCastObj(FileXNaming_FPropertyIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_FileXNaming_FPropertyIterator_somCastObj *somTD_FileXNaming_FPropertyIterator_somCastObj;
typedef boolean   SOMLINK somTP_FileXNaming_FPropertyIterator_somResetObj(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somResetObj *somTD_FileXNaming_FPropertyIterator_somResetObj;
typedef FileXNaming_FPropertyIterator*   SOMLINK somTP_FileXNaming_FPropertyIterator_somPrintSelf(FileXNaming_FPropertyIterator *somSelf);
typedef somTP_FileXNaming_FPropertyIterator_somPrintSelf *somTD_FileXNaming_FPropertyIterator_somPrintSelf;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDumpSelf(FileXNaming_FPropertyIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FPropertyIterator_somDumpSelf *somTD_FileXNaming_FPropertyIterator_somDumpSelf;
typedef void   SOMLINK somTP_FileXNaming_FPropertyIterator_somDumpSelfInt(FileXNaming_FPropertyIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FPropertyIterator_somDumpSelfInt *somTD_FileXNaming_FPropertyIterator_somDumpSelfInt;
}

#endif /* FileXNaming_FPropertyIterator_API */


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

// FileXNaming_FPropertyIterator::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 (!_FileXNaming_FPropertyIterator) FileXNaming_FPropertyIteratorNewClass(FileXNaming_FPropertyIterator_MajorVersion,FileXNaming_FPropertyIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_FileXNaming_FPropertyIterator)));
}

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* 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_FileXNaming_FPropertyIterator_next_one)(ExtendedNaming_PropertyIteratorClassData.next_one))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_next_n)(ExtendedNaming_PropertyIteratorClassData.next_n))(((FileXNaming_FPropertyIterator *)((void *)this)), ev,howMany,pl)
	);
}


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


/* method: somInit */
void   somInit()
{
   	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_FileXNaming_FPropertyIterator_somInit)(SOMObjectClassData.somInit))(((FileXNaming_FPropertyIterator *)((void *)this)))
	);
}


/* 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_FileXNaming_FPropertyIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDestruct)(SOMObjectClassData.somDestruct))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((FileXNaming_FPropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
FileXNaming_FPropertyIterator*  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_FileXNaming_FPropertyIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((FileXNaming_FPropertyIterator *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_FileXNaming_FPropertyIterator_somGetSize)(SOMObjectClassData.somGetSize))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somIsA)(SOMObjectClassData.somIsA))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somCastObj)(SOMObjectClassData.somCastObj))(((FileXNaming_FPropertyIterator *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
FileXNaming_FPropertyIterator*  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_FileXNaming_FPropertyIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((FileXNaming_FPropertyIterator *)((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_FileXNaming_FPropertyIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((FileXNaming_FPropertyIterator *)((void *)this)),level)
	);
}



};   /* FileXNaming_FPropertyIterator */



#endif       /* SOM_FileXNaming_FPropertyIterator_xh */

#ifndef SOM_FileXNaming_FileIndexIterator_xh
#define SOM_FileXNaming_FileIndexIterator_xh


#define FileXNaming_FileIndexIterator_MajorVersion 0
#define FileXNaming_FileIndexIterator_MinorVersion 0
class FileXNaming_FileIndexIterator;

/* Parents */
#ifndef SOM_ExtendedNaming_IndexIterator_xh
#ifdef SOMLOCALINCLUDES
#include "xnaming.xh"
#else
#include <xnaming.xh>
#endif
#endif

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

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

/*
 * Start of bindings for IDL types
 */

#ifndef _IDL_SEQUENCE_octet_defined
#define _IDL_SEQUENCE_octet_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    octet *_buffer;
} _IDL_SEQUENCE_octet;
#endif /* _IDL_SEQUENCE_octet_defined */ 

#ifndef SOM_DONT_USE_SHORT_NAMES
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

/*
 * A function to create the FileXNaming_FileIndexIterator class object...
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_xnamingf SOMClass * SOMLINK FileXNaming_FileIndexIteratorNewClass(
		integer4 majorVersion,
		integer4 minorVersion);


/*
 * The API 2 ClassData Structures...
 */
SOMEXTERN struct FileXNaming_FileIndexIteratorClassDataStructure {
	SOMClass *classObject;
	somMToken FileIndexIterator_Init;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FileIndexIteratorClassData;
SOMEXTERN struct FileXNaming_FileIndexIteratorCClassDataStructure {
	som3ClassDetailsPtr    parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK SOM_IMPORTEXPORT_somnmf_xnamingf FileXNaming_FileIndexIteratorCClassData;


/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_FileXNaming_FileIndexIterator (FileXNaming_FileIndexIteratorClassData.classObject)
#ifndef SOMGD_FileXNaming_FileIndexIterator
    #if (defined(_FileXNaming_FileIndexIterator) || defined(__FileXNaming_FileIndexIterator))
        #undef _FileXNaming_FileIndexIterator
        #undef __FileXNaming_FileIndexIterator
        #define SOMGD_FileXNaming_FileIndexIterator 1
    #else
        #define _FileXNaming_FileIndexIterator _SOMCLASS_FileXNaming_FileIndexIterator
    #endif /* _FileXNaming_FileIndexIterator */
#endif /* SOMGD_FileXNaming_FileIndexIterator */
#define FileXNaming_FileIndexIterator_classObj _SOMCLASS_FileXNaming_FileIndexIterator
#define _SOMMTOKEN_FileXNaming_FileIndexIterator(method) ((somMToken)FileXNaming_FileIndexIteratorClassData.method)

/*
 * -- Typedefs for FileXNaming_FileIndexIterator Method Procedures
 */
SOMEXTERN {
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_FileIndexIterator_Init(FileXNaming_FileIndexIterator *somSelf, Environment *ev, 
		somInitCtrl* ctrl, 
		_IDL_SEQUENCE_octet* key, 
		string databaseFile);
typedef somTP_FileXNaming_FileIndexIterator_FileIndexIterator_Init *somTD_FileXNaming_FileIndexIterator_FileIndexIterator_Init;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_next_one(FileXNaming_FileIndexIterator *somSelf, Environment *ev, 
		ExtendedNaming_IndexDescriptor* p);
typedef somTP_FileXNaming_FileIndexIterator_next_one *somTD_FileXNaming_FileIndexIterator_next_one;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_next_n(FileXNaming_FileIndexIterator *somSelf, Environment *ev, 
		unsigned long howMany, 
		ExtendedNaming_IndexDescriptorList* il);
typedef somTP_FileXNaming_FileIndexIterator_next_n *somTD_FileXNaming_FileIndexIterator_next_n;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_destroy(FileXNaming_FileIndexIterator *somSelf, Environment *ev);
typedef somTP_FileXNaming_FileIndexIterator_destroy *somTD_FileXNaming_FileIndexIterator_destroy;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultInit(FileXNaming_FileIndexIterator *somSelf, 
		som3InitCtrl* ctrl);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultInit *somTD_FileXNaming_FileIndexIterator_somDefaultInit;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDestruct(FileXNaming_FileIndexIterator *somSelf, 
		octet doFree, 
		som3DestructCtrl* ctrl);
typedef somTP_FileXNaming_FileIndexIterator_somDestruct *somTD_FileXNaming_FileIndexIterator_somDestruct;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultCopyInit(FileXNaming_FileIndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultCopyInit *somTD_FileXNaming_FileIndexIterator_somDefaultCopyInit;
typedef FileXNaming_FileIndexIterator*   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultAssign(FileXNaming_FileIndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultAssign *somTD_FileXNaming_FileIndexIterator_somDefaultAssign;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultConstCopyInit(FileXNaming_FileIndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultConstCopyInit *somTD_FileXNaming_FileIndexIterator_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultVCopyInit(FileXNaming_FileIndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultVCopyInit *somTD_FileXNaming_FileIndexIterator_somDefaultVCopyInit;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultConstVCopyInit(FileXNaming_FileIndexIterator *somSelf, 
		som3InitCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultConstVCopyInit *somTD_FileXNaming_FileIndexIterator_somDefaultConstVCopyInit;
typedef FileXNaming_FileIndexIterator*   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultConstAssign(FileXNaming_FileIndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultConstAssign *somTD_FileXNaming_FileIndexIterator_somDefaultConstAssign;
typedef FileXNaming_FileIndexIterator*   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultVAssign(FileXNaming_FileIndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultVAssign *somTD_FileXNaming_FileIndexIterator_somDefaultVAssign;
typedef FileXNaming_FileIndexIterator*   SOMLINK somTP_FileXNaming_FileIndexIterator_somDefaultConstVAssign(FileXNaming_FileIndexIterator *somSelf, 
		som3AssignCtrl* ctrl, 
		SOMObject* fromObj);
typedef somTP_FileXNaming_FileIndexIterator_somDefaultConstVAssign *somTD_FileXNaming_FileIndexIterator_somDefaultConstVAssign;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somInit(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somInit *somTD_FileXNaming_FileIndexIterator_somInit;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somUninit(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somUninit *somTD_FileXNaming_FileIndexIterator_somUninit;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somFree(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somFree *somTD_FileXNaming_FileIndexIterator_somFree;
typedef SOMClass*   SOMLINK somTP_FileXNaming_FileIndexIterator_somGetClass(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somGetClass *somTD_FileXNaming_FileIndexIterator_somGetClass;
typedef string   SOMLINK somTP_FileXNaming_FileIndexIterator_somGetClassName(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somGetClassName *somTD_FileXNaming_FileIndexIterator_somGetClassName;
typedef long   SOMLINK somTP_FileXNaming_FileIndexIterator_somGetSize(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somGetSize *somTD_FileXNaming_FileIndexIterator_somGetSize;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somIsA(FileXNaming_FileIndexIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FileIndexIterator_somIsA *somTD_FileXNaming_FileIndexIterator_somIsA;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somIsInstanceOf(FileXNaming_FileIndexIterator *somSelf, 
		SOMClass* aClassObj);
typedef somTP_FileXNaming_FileIndexIterator_somIsInstanceOf *somTD_FileXNaming_FileIndexIterator_somIsInstanceOf;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somRespondsTo(FileXNaming_FileIndexIterator *somSelf, 
		somId mId);
typedef somTP_FileXNaming_FileIndexIterator_somRespondsTo *somTD_FileXNaming_FileIndexIterator_somRespondsTo;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somDispatch(FileXNaming_FileIndexIterator *somSelf, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FileIndexIterator_somDispatch *somTD_FileXNaming_FileIndexIterator_somDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somClassDispatch(FileXNaming_FileIndexIterator *somSelf, 
		SOMClass* clsObj, 
		somToken* retValue, 
		somId methodId, 
		va_list ap);
typedef somTP_FileXNaming_FileIndexIterator_somClassDispatch *somTD_FileXNaming_FileIndexIterator_somClassDispatch;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somCastObj(FileXNaming_FileIndexIterator *somSelf, 
		SOMClass* castedCls);
typedef somTP_FileXNaming_FileIndexIterator_somCastObj *somTD_FileXNaming_FileIndexIterator_somCastObj;
typedef boolean   SOMLINK somTP_FileXNaming_FileIndexIterator_somResetObj(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somResetObj *somTD_FileXNaming_FileIndexIterator_somResetObj;
typedef FileXNaming_FileIndexIterator*   SOMLINK somTP_FileXNaming_FileIndexIterator_somPrintSelf(FileXNaming_FileIndexIterator *somSelf);
typedef somTP_FileXNaming_FileIndexIterator_somPrintSelf *somTD_FileXNaming_FileIndexIterator_somPrintSelf;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDumpSelf(FileXNaming_FileIndexIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FileIndexIterator_somDumpSelf *somTD_FileXNaming_FileIndexIterator_somDumpSelf;
typedef void   SOMLINK somTP_FileXNaming_FileIndexIterator_somDumpSelfInt(FileXNaming_FileIndexIterator *somSelf, 
		long level);
typedef somTP_FileXNaming_FileIndexIterator_somDumpSelfInt *somTD_FileXNaming_FileIndexIterator_somDumpSelfInt;
}

#endif /* FileXNaming_FileIndexIterator_API */


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

// FileXNaming_FileIndexIterator::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 (!_FileXNaming_FileIndexIterator) FileXNaming_FileIndexIteratorNewClass(FileXNaming_FileIndexIterator_MajorVersion,FileXNaming_FileIndexIterator_MinorVersion);
   return (void*)
   (((somTD_SOMClass_somNewNoInit)(SOMClassClassData.somNewNoInit))
         ((SOMClass *)((void*)_FileXNaming_FileIndexIterator)));
}

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

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

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

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

FileXNaming_FileIndexIterator(Environment *ev,_IDL_SEQUENCE_octet* key,string databaseFile) 
{
   FileIndexIterator_Init(ev,0,key,databaseFile);
}


/* initializer method: FileIndexIterator_Init */
void   FileIndexIterator_Init(Environment *ev, 
		somInitCtrl* ctrl, 
		_IDL_SEQUENCE_octet* key, 
		string databaseFile)
{
   	(
	 SOM_TestCls(this,_SOMCLASS_FileXNaming_FileIndexIterator),
	 ((somTD_FileXNaming_FileIndexIterator_FileIndexIterator_Init)(FileXNaming_FileIndexIteratorClassData.FileIndexIterator_Init))(((FileXNaming_FileIndexIterator *)((void *)this)), ev,ctrl,key,databaseFile)
	);
}


/*
 * Reintroduce inherited methods
 */

/* 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_FileXNaming_FileIndexIterator_next_one)(ExtendedNaming_IndexIteratorClassData.next_one))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_next_n)(ExtendedNaming_IndexIteratorClassData.next_n))(((FileXNaming_FileIndexIterator *)((void *)this)), ev,howMany,il)
	);
}


/* method: destroy */
void   destroy(Environment *ev)
{
/*
 *  destroys the iterator
 */
   	(
	 SOM_TestCls(this,_SOMCLASS_ExtendedNaming_IndexIterator),
	 ((somTD_FileXNaming_FileIndexIterator_destroy)(ExtendedNaming_IndexIteratorClassData.destroy))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDefaultInit)(SOMObjectClassData.somDefaultInit))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDestruct)(SOMObjectClassData.somDestruct))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDefaultCopyInit)(SOMObjectClassData.somDefaultCopyInit))(((FileXNaming_FileIndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


/* method: somDefaultAssign */
FileXNaming_FileIndexIterator*  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_FileXNaming_FileIndexIterator_somDefaultAssign)(SOMObjectClassData.somDefaultAssign))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDefaultConstCopyInit)(SOMObjectClassData.somDefaultConstCopyInit))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDefaultVCopyInit)(SOMObjectClassData.somDefaultVCopyInit))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDefaultConstVCopyInit)(SOMObjectClassData.somDefaultConstVCopyInit))(((FileXNaming_FileIndexIterator *)((void *)this)),ctrl,fromObj)
	);
}


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


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


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


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


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


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


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


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


/* method: somGetSize */
long   somGetSize()
{
/*
 *  Return the size of the receiver.
 */
   return 	(
	 SOM_TestCls(this,_SOMCLASS_SOMObject),
	 ((somTD_FileXNaming_FileIndexIterator_somGetSize)(SOMObjectClassData.somGetSize))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somIsA)(SOMObjectClassData.somIsA))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somIsInstanceOf)(SOMObjectClassData.somIsInstanceOf))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somRespondsTo)(SOMObjectClassData.somRespondsTo))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDispatch)(SOMObjectClassData.somDispatch))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somClassDispatch)(SOMObjectClassData.somClassDispatch))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somCastObj)(SOMObjectClassData.somCastObj))(((FileXNaming_FileIndexIterator *)((void *)this)),castedCls)
	);
}


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


/* method: somPrintSelf */
FileXNaming_FileIndexIterator*  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_FileXNaming_FileIndexIterator_somPrintSelf)(SOMObjectClassData.somPrintSelf))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDumpSelf)(SOMObjectClassData.somDumpSelf))(((FileXNaming_FileIndexIterator *)((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_FileXNaming_FileIndexIterator_somDumpSelfInt)(SOMObjectClassData.somDumpSelfInt))(((FileXNaming_FileIndexIterator *)((void *)this)),level)
	);
}



};   /* FileXNaming_FileIndexIterator */



#endif       /* SOM_FileXNaming_FileIndexIterator_xh */
