
/*
 * This file was generated by the SOM Compiler.
 * FileName: naming.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.19
 *     SOM Emitter emith.dll: 2.31.1.64
 */

#ifndef SOM_Module_naming_CosNaming_defined
#define SOM_Module_naming_CosNaming_defined 1

/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1

#include <som.h>

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
typedef
string  CosNaming_Istring;
typedef
struct CosNaming_NameComponent {
CosNaming_Istring id;
CosNaming_Istring kind;
} CosNaming_NameComponent;
struct CosNaming_NameComponent;
#ifndef _IDL_SEQUENCE_CosNaming_NameComponent_defined
#define _IDL_SEQUENCE_CosNaming_NameComponent_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    struct CosNaming_NameComponent *_buffer;
} _IDL_SEQUENCE_CosNaming_NameComponent;
#endif /* _IDL_SEQUENCE_CosNaming_NameComponent_defined */ 
typedef
_IDL_SEQUENCE_CosNaming_NameComponent CosNaming_Name;
typedef unsigned long CosNaming_BindingType;
#define CosNaming_nobject 1UL
#define CosNaming_ncontext 2UL
typedef
struct CosNaming_Binding {
CosNaming_Name binding_name;
CosNaming_BindingType binding_type;
} CosNaming_Binding;
struct CosNaming_Binding;
#ifndef _IDL_SEQUENCE_CosNaming_Binding_defined
#define _IDL_SEQUENCE_CosNaming_Binding_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    struct CosNaming_Binding *_buffer;
} _IDL_SEQUENCE_CosNaming_Binding;
#endif /* _IDL_SEQUENCE_CosNaming_Binding_defined */ 
typedef
_IDL_SEQUENCE_CosNaming_Binding CosNaming_BindingList;

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_Istring
    #ifdef Istring
        #undef Istring
        #define SOMTGD_Istring 1
    #else
        #define Istring CosNaming_Istring
    #endif /* Istring */
#endif /* SOMTGD_Istring */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_NameComponent
    #ifdef NameComponent
        #undef NameComponent
        #define SOMTGD_NameComponent 1
    #else
        #define NameComponent CosNaming_NameComponent
    #endif /* NameComponent */
#endif /* SOMTGD_NameComponent */
#ifndef SOMTGD__IDL_SEQUENCE_NameComponent
    #ifdef _IDL_SEQUENCE_NameComponent
        #undef _IDL_SEQUENCE_NameComponent
        #define SOMTGD__IDL_SEQUENCE_NameComponent 1
    #else
        #define _IDL_SEQUENCE_NameComponent _IDL_SEQUENCE_CosNaming_NameComponent
    #endif /* _IDL_SEQUENCE_NameComponent */
#endif /* SOMTGD__IDL_SEQUENCE_NameComponent */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_Name
    #ifdef Name
        #undef Name
        #define SOMTGD_Name 1
    #else
        #define Name CosNaming_Name
    #endif /* Name */
#endif /* SOMTGD_Name */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD_BindingType
    #ifdef BindingType
        #undef BindingType
        #define SOMTGD_BindingType 1
    #else
        #define BindingType CosNaming_BindingType
    #endif /* BindingType */
#endif /* SOMTGD_BindingType */
#ifndef SOMTGD_Binding
    #ifdef Binding
        #undef Binding
        #define SOMTGD_Binding 1
    #else
        #define Binding CosNaming_Binding
    #endif /* Binding */
#endif /* SOMTGD_Binding */
#ifndef SOMTGD__IDL_SEQUENCE_Binding
    #ifdef _IDL_SEQUENCE_Binding
        #undef _IDL_SEQUENCE_Binding
        #define SOMTGD__IDL_SEQUENCE_Binding 1
    #else
        #define _IDL_SEQUENCE_Binding _IDL_SEQUENCE_CosNaming_Binding
    #endif /* _IDL_SEQUENCE_Binding */
#endif /* SOMTGD__IDL_SEQUENCE_Binding */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_BindingList
    #ifdef BindingList
        #undef BindingList
        #define SOMTGD_BindingList 1
    #else
        #define BindingList CosNaming_BindingList
    #endif /* BindingList */
#endif /* SOMTGD_BindingList */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#ifndef SOM_CosNaming_BindingIterator_h
#define SOM_CosNaming_BindingIterator_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>
#ifndef SOM_IMPORTEXPORT_somnmf_naming
#ifdef SOM_DLL_somnmf
	/* export semantics */
	#if defined(SOM_DEFFILE_somnmf)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somnmf))\
	|| !defined(SOM_Module_naming_Source)
	#define SOM_IMPORTEXPORT_somnmf_naming
	#else
	#define SOM_IMPORTEXPORT_somnmf_naming SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somnmf_naming SOMDLLIMPORT
#endif
#endif

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef CosNaming_BindingIterator
#define CosNaming_BindingIterator SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_SOMObject_h
#ifdef SOMLOCALINCLUDES
#include "somobj.h"
#else
#include <somobj.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


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

#define CosNaming_BindingIterator_MajorVersion 3
#define CosNaming_BindingIterator_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_naming SOMClass  SOMLINK CosNaming_BindingIteratorNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct CosNaming_BindingIteratorClassDataStructure {
	SOMClass classObject;
	somMToken next_one;
	somMToken next_n;
	somMToken destroy;
} SOM_IMPORTEXPORT_somnmf_naming SOMDLINK CosNaming_BindingIteratorClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct CosNaming_BindingIteratorCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somnmf_naming SOMDLINK CosNaming_BindingIteratorCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_CosNaming_BindingIterator (CosNaming_BindingIteratorClassData.classObject)
#ifndef SOMGD_CosNaming_BindingIterator
    #if (defined(_CosNaming_BindingIterator) || defined(__CosNaming_BindingIterator))
        #undef _CosNaming_BindingIterator
        #undef __CosNaming_BindingIterator
        #define SOMGD_CosNaming_BindingIterator 1
    #else
        #define _CosNaming_BindingIterator _SOMCLASS_CosNaming_BindingIterator
    #endif /* _CosNaming_BindingIterator */
#endif /* SOMGD_CosNaming_BindingIterator */
#define CosNaming_BindingIterator_classObj _SOMCLASS_CosNaming_BindingIterator
#define _SOMMTOKEN_CosNaming_BindingIterator(method) ((somMToken)CosNaming_BindingIteratorClassData.method)

/*
 * New and Renew macros for CosNaming_BindingIterator
 */
#define CosNaming_BindingIteratorNew() \
   ( _CosNaming_BindingIterator ? \
	_somNew(_CosNaming_BindingIterator) \
	: ( CosNaming_BindingIteratorNewClass(\
		CosNaming_BindingIterator_MajorVersion, \
		CosNaming_BindingIterator_MinorVersion),\
	   _somNew(_CosNaming_BindingIterator)))
#define CosNaming_BindingIteratorRenew(buf) \
   ( _CosNaming_BindingIterator ? \
	_somRenew(_CosNaming_BindingIterator, buf) \
	: ( CosNaming_BindingIteratorNewClass(\
		CosNaming_BindingIterator_MajorVersion, \
		CosNaming_BindingIterator_MinorVersion),\
	   _somRenew(_CosNaming_BindingIterator, buf)))

/*
 * New Method: next_one
 */
typedef boolean   SOMLINK somTP_CosNaming_BindingIterator_next_one(CosNaming_BindingIterator somSelf, Environment *ev, 
		CosNaming_Binding* b);
typedef somTP_CosNaming_BindingIterator_next_one *somTD_CosNaming_BindingIterator_next_one;
/*
 *  returns the next binding. FALSE is returned if
 *  there are no more bindings
 */
#define somMD_CosNaming_BindingIterator_next_one "::CosNaming::BindingIterator::next_one"
#define CosNaming_BindingIterator_next_one(somSelf,ev,b) \
    (SOM_Resolve(somSelf, CosNaming_BindingIterator, next_one) \
	(somSelf,ev,b))
#ifndef SOMGD_next_one
    #if (defined(_next_one) || defined(__next_one))
        #undef _next_one
        #undef __next_one
        #define SOMGD_next_one 1
    #else
        #define _next_one CosNaming_BindingIterator_next_one
    #endif /* _next_one */
#endif /* SOMGD_next_one */

/*
 * New Method: next_n
 */
typedef boolean   SOMLINK somTP_CosNaming_BindingIterator_next_n(CosNaming_BindingIterator somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl);
typedef somTP_CosNaming_BindingIterator_next_n *somTD_CosNaming_BindingIterator_next_n;
/*
 *  returns at most the "how_many" number of bindings.
 *  Returns FALSE if there are no more bindings
 */
#define somMD_CosNaming_BindingIterator_next_n "::CosNaming::BindingIterator::next_n"
#define CosNaming_BindingIterator_next_n(somSelf,ev,how_many,bl) \
    (SOM_Resolve(somSelf, CosNaming_BindingIterator, next_n) \
	(somSelf,ev,how_many,bl))
#ifndef SOMGD_next_n
    #if (defined(_next_n) || defined(__next_n))
        #undef _next_n
        #undef __next_n
        #define SOMGD_next_n 1
    #else
        #define _next_n CosNaming_BindingIterator_next_n
    #endif /* _next_n */
#endif /* SOMGD_next_n */

/*
 * New Method: destroy
 */
typedef void   SOMLINK somTP_CosNaming_BindingIterator_destroy(CosNaming_BindingIterator somSelf, Environment *ev);
typedef somTP_CosNaming_BindingIterator_destroy *somTD_CosNaming_BindingIterator_destroy;
/*
 *  destroys the iterator
 */
#define somMD_CosNaming_BindingIterator_destroy "::CosNaming::BindingIterator::destroy"
#define CosNaming_BindingIterator_destroy(somSelf,ev) \
    (SOM_Resolve(somSelf, CosNaming_BindingIterator, destroy) \
	(somSelf,ev))
#ifndef SOMGD_destroy
    #if (defined(_destroy) || defined(__destroy))
        #undef _destroy
        #undef __destroy
        #define SOMGD_destroy 1
    #else
        #define _destroy CosNaming_BindingIterator_destroy
    #endif /* _destroy */
#endif /* SOMGD_destroy */

/*
 * Full Names for Inherited Methods
 */

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define CosNaming_BindingIterator_somDefaultInit SOMObject_somDefaultInit
#define CosNaming_BindingIterator_somDestruct SOMObject_somDestruct
#define CosNaming_BindingIterator_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define CosNaming_BindingIterator_somDefaultAssign SOMObject_somDefaultAssign
#define CosNaming_BindingIterator_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define CosNaming_BindingIterator_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define CosNaming_BindingIterator_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define CosNaming_BindingIterator_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define CosNaming_BindingIterator_somDefaultVAssign SOMObject_somDefaultVAssign
#define CosNaming_BindingIterator_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define CosNaming_BindingIterator_somInit SOMObject_somInit
#define CosNaming_BindingIterator_somUninit SOMObject_somUninit
#define CosNaming_BindingIterator_somFree SOMObject_somFree
#define CosNaming_BindingIterator_somGetClass SOMObject_somGetClass
#define CosNaming_BindingIterator_somGetClassName SOMObject_somGetClassName
#define CosNaming_BindingIterator_somGetSize SOMObject_somGetSize
#define CosNaming_BindingIterator_somIsA SOMObject_somIsA
#define CosNaming_BindingIterator_somIsInstanceOf SOMObject_somIsInstanceOf
#define CosNaming_BindingIterator_somRespondsTo SOMObject_somRespondsTo
#define CosNaming_BindingIterator_somDispatch SOMObject_somDispatch
#define CosNaming_BindingIterator_somClassDispatch SOMObject_somClassDispatch
#define CosNaming_BindingIterator_somCastObj SOMObject_somCastObj
#define CosNaming_BindingIterator_somResetObj SOMObject_somResetObj
#define CosNaming_BindingIterator_somPrintSelf SOMObject_somPrintSelf
#define CosNaming_BindingIterator_somDumpSelf SOMObject_somDumpSelf
#define CosNaming_BindingIterator_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_CosNaming_BindingIterator_h */

#ifndef SOM_CosNaming_NamingContext_h
#define SOM_CosNaming_NamingContext_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef CosNaming_NamingContext
#define CosNaming_NamingContext SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_SOMObject_h
#ifdef SOMLOCALINCLUDES
#include "somobj.h"
#else
#include <somobj.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */

typedef unsigned long CosNaming_NamingContext_NotFoundReason;
#define CosNaming_NamingContext_missing_node 1UL
#define CosNaming_NamingContext_not_context 2UL
#define CosNaming_NamingContext_not_object 3UL
#define ex_CosNaming_NamingContext_NotFound "::CosNaming::NamingContext::NotFound"
typedef
struct CosNaming_NamingContext_NotFound {
CosNaming_NamingContext_NotFoundReason why;
CosNaming_Name rest_of_name;
} CosNaming_NamingContext_NotFound;
#define ex_CosNaming_NamingContext_CannotProceed "::CosNaming::NamingContext::CannotProceed"
typedef
struct CosNaming_NamingContext_CannotProceed {
CosNaming_NamingContext cxt;
CosNaming_Name rest_of_name;
} CosNaming_NamingContext_CannotProceed;
#define ex_CosNaming_NamingContext_InvalidName "::CosNaming::NamingContext::InvalidName"
typedef
struct CosNaming_NamingContext_InvalidName {
CosNaming_Name name;
} CosNaming_NamingContext_InvalidName;
#define ex_CosNaming_NamingContext_AlreadyBound "::CosNaming::NamingContext::AlreadyBound"
#define CosNaming_NamingContext_AlreadyBound NULL
#define ex_CosNaming_NamingContext_NotEmpty "::CosNaming::NamingContext::NotEmpty"
#define CosNaming_NamingContext_NotEmpty NULL

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_NotFoundReason
    #ifdef NotFoundReason
        #undef NotFoundReason
        #define SOMTGD_NotFoundReason 1
    #else
        #define NotFoundReason CosNaming_NamingContext_NotFoundReason
    #endif /* NotFoundReason */
#endif /* SOMTGD_NotFoundReason */
#ifndef SOMTGD_ex_NotFound
    #ifdef ex_NotFound
        #undef ex_NotFound
        #define SOMTGD_ex_NotFound 1
    #else
        #define ex_NotFound ex_CosNaming_NamingContext_NotFound
    #endif /* ex_NotFound */
#endif /* SOMTGD_ex_NotFound */
#ifndef SOMTGD_NotFound
    #ifdef NotFound
        #undef NotFound
        #define SOMTGD_NotFound 1
    #else
        #define NotFound CosNaming_NamingContext_NotFound
    #endif /* NotFound */
#endif /* SOMTGD_NotFound */
#ifndef SOMTGD_ex_CannotProceed
    #ifdef ex_CannotProceed
        #undef ex_CannotProceed
        #define SOMTGD_ex_CannotProceed 1
    #else
        #define ex_CannotProceed ex_CosNaming_NamingContext_CannotProceed
    #endif /* ex_CannotProceed */
#endif /* SOMTGD_ex_CannotProceed */
#ifndef SOMTGD_CannotProceed
    #ifdef CannotProceed
        #undef CannotProceed
        #define SOMTGD_CannotProceed 1
    #else
        #define CannotProceed CosNaming_NamingContext_CannotProceed
    #endif /* CannotProceed */
#endif /* SOMTGD_CannotProceed */
#ifndef SOMTGD_ex_InvalidName
    #ifdef ex_InvalidName
        #undef ex_InvalidName
        #define SOMTGD_ex_InvalidName 1
    #else
        #define ex_InvalidName ex_CosNaming_NamingContext_InvalidName
    #endif /* ex_InvalidName */
#endif /* SOMTGD_ex_InvalidName */
#ifndef SOMTGD_InvalidName
    #ifdef InvalidName
        #undef InvalidName
        #define SOMTGD_InvalidName 1
    #else
        #define InvalidName CosNaming_NamingContext_InvalidName
    #endif /* InvalidName */
#endif /* SOMTGD_InvalidName */
#ifndef SOMTGD_ex_AlreadyBound
    #ifdef ex_AlreadyBound
        #undef ex_AlreadyBound
        #define SOMTGD_ex_AlreadyBound 1
    #else
        #define ex_AlreadyBound ex_CosNaming_NamingContext_AlreadyBound
    #endif /* ex_AlreadyBound */
#endif /* SOMTGD_ex_AlreadyBound */
#ifndef SOMTGD_AlreadyBound
    #ifdef AlreadyBound
        #undef AlreadyBound
        #define SOMTGD_AlreadyBound 1
    #else
        #define AlreadyBound CosNaming_NamingContext_AlreadyBound
    #endif /* AlreadyBound */
#endif /* SOMTGD_AlreadyBound */
#ifndef SOMTGD_ex_NotEmpty
    #ifdef ex_NotEmpty
        #undef ex_NotEmpty
        #define SOMTGD_ex_NotEmpty 1
    #else
        #define ex_NotEmpty ex_CosNaming_NamingContext_NotEmpty
    #endif /* ex_NotEmpty */
#endif /* SOMTGD_ex_NotEmpty */
#ifndef SOMTGD_NotEmpty
    #ifdef NotEmpty
        #undef NotEmpty
        #define SOMTGD_NotEmpty 1
    #else
        #define NotEmpty CosNaming_NamingContext_NotEmpty
    #endif /* NotEmpty */
#endif /* SOMTGD_NotEmpty */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#define CosNaming_NamingContext_MajorVersion 3
#define CosNaming_NamingContext_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_naming SOMClass  SOMLINK CosNaming_NamingContextNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct CosNaming_NamingContextClassDataStructure {
	SOMClass classObject;
	somMToken bind;
	somMToken rebind;
	somMToken bind_context;
	somMToken rebind_context;
	somMToken resolve;
	somMToken unbind;
	somMToken new_context;
	somMToken bind_new_context;
	somMToken destroy;
	somMToken list;
	somMToken resolvex;
} SOM_IMPORTEXPORT_somnmf_naming SOMDLINK CosNaming_NamingContextClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct CosNaming_NamingContextCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somnmf_naming SOMDLINK CosNaming_NamingContextCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_CosNaming_NamingContext (CosNaming_NamingContextClassData.classObject)
#ifndef SOMGD_CosNaming_NamingContext
    #if (defined(_CosNaming_NamingContext) || defined(__CosNaming_NamingContext))
        #undef _CosNaming_NamingContext
        #undef __CosNaming_NamingContext
        #define SOMGD_CosNaming_NamingContext 1
    #else
        #define _CosNaming_NamingContext _SOMCLASS_CosNaming_NamingContext
    #endif /* _CosNaming_NamingContext */
#endif /* SOMGD_CosNaming_NamingContext */
#define CosNaming_NamingContext_classObj _SOMCLASS_CosNaming_NamingContext
#define _SOMMTOKEN_CosNaming_NamingContext(method) ((somMToken)CosNaming_NamingContextClassData.method)

/*
 * New and Renew macros for CosNaming_NamingContext
 */
#define CosNaming_NamingContextNew() \
   ( _CosNaming_NamingContext ? \
	_somNew(_CosNaming_NamingContext) \
	: ( CosNaming_NamingContextNewClass(\
		CosNaming_NamingContext_MajorVersion, \
		CosNaming_NamingContext_MinorVersion),\
	   _somNew(_CosNaming_NamingContext)))
#define CosNaming_NamingContextRenew(buf) \
   ( _CosNaming_NamingContext ? \
	_somRenew(_CosNaming_NamingContext, buf) \
	: ( CosNaming_NamingContextNewClass(\
		CosNaming_NamingContext_MajorVersion, \
		CosNaming_NamingContext_MinorVersion),\
	   _somRenew(_CosNaming_NamingContext, buf)))

/*
 * New Method: bind
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_bind(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject obj);
typedef somTP_CosNaming_NamingContext_bind *somTD_CosNaming_NamingContext_bind;
/*
 *  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
 */
#define somMD_CosNaming_NamingContext_bind "::CosNaming::NamingContext::bind"
#define CosNaming_NamingContext_bind(somSelf,ev,n,obj) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, bind) \
	(somSelf,ev,n,obj))
#ifndef SOMGD_bind
    #if (defined(_bind) || defined(__bind))
        #undef _bind
        #undef __bind
        #define SOMGD_bind 1
    #else
        #define _bind CosNaming_NamingContext_bind
    #endif /* _bind */
#endif /* SOMGD_bind */

/*
 * New Method: rebind
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_rebind(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n, 
		SOMObject obj);
typedef somTP_CosNaming_NamingContext_rebind *somTD_CosNaming_NamingContext_rebind;
/*
 *  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.
 */
#define somMD_CosNaming_NamingContext_rebind "::CosNaming::NamingContext::rebind"
#define CosNaming_NamingContext_rebind(somSelf,ev,n,obj) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, rebind) \
	(somSelf,ev,n,obj))
#ifndef SOMGD_rebind
    #if (defined(_rebind) || defined(__rebind))
        #undef _rebind
        #undef __rebind
        #define SOMGD_rebind 1
    #else
        #define _rebind CosNaming_NamingContext_rebind
    #endif /* _rebind */
#endif /* SOMGD_rebind */

/*
 * New Method: bind_context
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_bind_context(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext nc);
typedef somTP_CosNaming_NamingContext_bind_context *somTD_CosNaming_NamingContext_bind_context;
/*
 *  binds a naming context to the name. Naming contexts
 *  that are bound using bind_context participate in
 *  name resolution when compound names are resolved
 */
#define somMD_CosNaming_NamingContext_bind_context "::CosNaming::NamingContext::bind_context"
#define CosNaming_NamingContext_bind_context(somSelf,ev,n,nc) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, bind_context) \
	(somSelf,ev,n,nc))
#ifndef SOMGD_bind_context
    #if (defined(_bind_context) || defined(__bind_context))
        #undef _bind_context
        #undef __bind_context
        #define SOMGD_bind_context 1
    #else
        #define _bind_context CosNaming_NamingContext_bind_context
    #endif /* _bind_context */
#endif /* SOMGD_bind_context */

/*
 * New Method: rebind_context
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_rebind_context(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n, 
		CosNaming_NamingContext nc);
typedef somTP_CosNaming_NamingContext_rebind_context *somTD_CosNaming_NamingContext_rebind_context;
/*
 *  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
 */
#define somMD_CosNaming_NamingContext_rebind_context "::CosNaming::NamingContext::rebind_context"
#define CosNaming_NamingContext_rebind_context(somSelf,ev,n,nc) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, rebind_context) \
	(somSelf,ev,n,nc))
#ifndef SOMGD_rebind_context
    #if (defined(_rebind_context) || defined(__rebind_context))
        #undef _rebind_context
        #undef __rebind_context
        #define SOMGD_rebind_context 1
    #else
        #define _rebind_context CosNaming_NamingContext_rebind_context
    #endif /* _rebind_context */
#endif /* SOMGD_rebind_context */

/*
 * New Method: resolve
 */
typedef SOMObject   SOMLINK somTP_CosNaming_NamingContext_resolve(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_CosNaming_NamingContext_resolve *somTD_CosNaming_NamingContext_resolve;
/*
 * retrieves an object bound to a name in the context
 *  Since names can be compound, name resolution can
 *  traverse multiple naming contexts
 */
#define somMD_CosNaming_NamingContext_resolve "::CosNaming::NamingContext::resolve"
#define CosNaming_NamingContext_resolve(somSelf,ev,n) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, resolve) \
	(somSelf,ev,n))
#ifndef SOMGD_resolve
    #if (defined(_resolve) || defined(__resolve))
        #undef _resolve
        #undef __resolve
        #define SOMGD_resolve 1
    #else
        #define _resolve CosNaming_NamingContext_resolve
    #endif /* _resolve */
#endif /* SOMGD_resolve */

/*
 * New Method: unbind
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_unbind(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_CosNaming_NamingContext_unbind *somTD_CosNaming_NamingContext_unbind;
/*
 *  removes a name binding from a context
 */
#define somMD_CosNaming_NamingContext_unbind "::CosNaming::NamingContext::unbind"
#define CosNaming_NamingContext_unbind(somSelf,ev,n) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, unbind) \
	(somSelf,ev,n))
#ifndef SOMGD_unbind
    #if (defined(_unbind) || defined(__unbind))
        #undef _unbind
        #undef __unbind
        #define SOMGD_unbind 1
    #else
        #define _unbind CosNaming_NamingContext_unbind
    #endif /* _unbind */
#endif /* SOMGD_unbind */

/*
 * New Method: new_context
 */
typedef CosNaming_NamingContext   SOMLINK somTP_CosNaming_NamingContext_new_context(CosNaming_NamingContext somSelf, Environment *ev);
typedef somTP_CosNaming_NamingContext_new_context *somTD_CosNaming_NamingContext_new_context;
/*
 *  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
 */
#define somMD_CosNaming_NamingContext_new_context "::CosNaming::NamingContext::new_context"
#define CosNaming_NamingContext_new_context(somSelf,ev) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, new_context) \
	(somSelf,ev))
#ifndef SOMGD_new_context
    #if (defined(_new_context) || defined(__new_context))
        #undef _new_context
        #undef __new_context
        #define SOMGD_new_context 1
    #else
        #define _new_context CosNaming_NamingContext_new_context
    #endif /* _new_context */
#endif /* SOMGD_new_context */

/*
 * New Method: bind_new_context
 */
typedef CosNaming_NamingContext   SOMLINK somTP_CosNaming_NamingContext_bind_new_context(CosNaming_NamingContext somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_CosNaming_NamingContext_bind_new_context *somTD_CosNaming_NamingContext_bind_new_context;
/*
 *  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
 */
#define somMD_CosNaming_NamingContext_bind_new_context "::CosNaming::NamingContext::bind_new_context"
#define CosNaming_NamingContext_bind_new_context(somSelf,ev,n) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, bind_new_context) \
	(somSelf,ev,n))
#ifndef SOMGD_bind_new_context
    #if (defined(_bind_new_context) || defined(__bind_new_context))
        #undef _bind_new_context
        #undef __bind_new_context
        #define SOMGD_bind_new_context 1
    #else
        #define _bind_new_context CosNaming_NamingContext_bind_new_context
    #endif /* _bind_new_context */
#endif /* SOMGD_bind_new_context */

/*
 * New Method: destroy
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_destroy(CosNaming_NamingContext somSelf, Environment *ev);
typedef somTP_CosNaming_NamingContext_destroy *somTD_CosNaming_NamingContext_destroy;
/*
 *  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.
 */
#define somMD_CosNaming_NamingContext_destroy "::CosNaming::NamingContext::destroy"
#define CosNaming_NamingContext_destroy(somSelf,ev) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, destroy) \
	(somSelf,ev))
#ifndef SOMGD_destroy
    #if (defined(_destroy) || defined(__destroy))
        #undef _destroy
        #undef __destroy
        #define SOMGD_destroy 1
    #else
        #define _destroy CosNaming_NamingContext_destroy
    #endif /* _destroy */
#endif /* SOMGD_destroy */

/*
 * New Method: list
 */
typedef void   SOMLINK somTP_CosNaming_NamingContext_list(CosNaming_NamingContext somSelf, Environment *ev, 
		unsigned long how_many, 
		CosNaming_BindingList* bl, 
		CosNaming_BindingIterator* bi);
typedef somTP_CosNaming_NamingContext_list *somTD_CosNaming_NamingContext_list;
/*
 *  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
 */
#define somMD_CosNaming_NamingContext_list "::CosNaming::NamingContext::list"
#define CosNaming_NamingContext_list(somSelf,ev,how_many,bl,bi) \
    (SOM_Resolve(somSelf, CosNaming_NamingContext, list) \
	(somSelf,ev,how_many,bl,bi))
#ifndef SOMGD_list
    #if (defined(_list) || defined(__list))
        #undef _list
        #undef __list
        #define SOMGD_list 1
    #else
        #define _list CosNaming_NamingContext_list
    #endif /* _list */
#endif /* SOMGD_list */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define CosNaming_NamingContext_somDefaultInit SOMObject_somDefaultInit
#define CosNaming_NamingContext_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define CosNaming_NamingContext_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define CosNaming_NamingContext_somDefaultAssign SOMObject_somDefaultAssign
#define CosNaming_NamingContext_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define CosNaming_NamingContext_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define CosNaming_NamingContext_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define CosNaming_NamingContext_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define CosNaming_NamingContext_somDefaultVAssign SOMObject_somDefaultVAssign
#define CosNaming_NamingContext_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define CosNaming_NamingContext_somInit SOMObject_somInit
#define CosNaming_NamingContext_somUninit SOMObject_somUninit
#define CosNaming_NamingContext_somFree SOMObject_somFree
#define CosNaming_NamingContext_somGetClass SOMObject_somGetClass
#define CosNaming_NamingContext_somGetClassName SOMObject_somGetClassName
#define CosNaming_NamingContext_somGetSize SOMObject_somGetSize
#define CosNaming_NamingContext_somIsA SOMObject_somIsA
#define CosNaming_NamingContext_somIsInstanceOf SOMObject_somIsInstanceOf
#define CosNaming_NamingContext_somRespondsTo SOMObject_somRespondsTo
#define CosNaming_NamingContext_somDispatch SOMObject_somDispatch
#define CosNaming_NamingContext_somClassDispatch SOMObject_somClassDispatch
#define CosNaming_NamingContext_somCastObj SOMObject_somCastObj
#define CosNaming_NamingContext_somResetObj SOMObject_somResetObj
#define CosNaming_NamingContext_somPrintSelf SOMObject_somPrintSelf
#define CosNaming_NamingContext_somDumpSelf SOMObject_somDumpSelf
#define CosNaming_NamingContext_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_CosNaming_NamingContext_h */
